ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Σχετικά έγγραφα
Οι δομές δεδομένων στοίβα και ουρά

Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

Κάθε στοιχείο που γίνεται αντιληπτό με μία από τις πέντε αισθήσεις μας

ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

Επιµέλεια Θοδωρής Πιερράτος

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 3 ο

Πίνακες. Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος A Εξάμηνο

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

3 ΟΥ και 9 ΟΥ ΚΕΦΑΛΑΙΟΥ

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή

Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον υποδειγματική διδασκαλία Κεφ. 3 Δομές Δεδομένων & αλγόριθμοι

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Ενδεικτικές Ερωτήσεις Θεωρίας

Φίλη μαθήτρια, φίλε μαθητή,

Προγραμματισμός Η/Υ. Δομές Δεδομένων. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Κεφάλαιο 3 : εδοµένα. Πίνακες Στοίβα Ουρά Αναζήτηση Ταξινόµηση. Προγράµµατα

Ορισµοί κεφαλαίου. Σηµαντικά σηµεία κεφαλαίου

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ. Πίνακες και βασικές επεξεργασίες αυτών

ENOTHTA 3 ΟΜΕΣ Ε ΟΜΕΝΩΝ

ΣΗΜΕΙΩΣΕΙΣ ΘΕΩΡΙΑΣ ΚΕΦΑΛΑΙΟ 3 ΠΡΟΣΘΗΚΗ

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ

Α1. Στον προγραµµατισµό χρησιµοποιούνται δοµές δεδοµένων. 1. Τι είναι δυναµική δοµή δεδοµένων; Μονάδες 3 2. Τι είναι στατική δοµή δεδοµένων;

Οι δυναμικές δομές δεδομένων στην ΑΕΠΠ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΟΝΟΜΑΤΕΠΩΝΥΜΟ:

7 ο ΓΕΛ Καλλιθέας Οδηγός Α.Ε.Π.Π. ΚΕΦΑΛΑΙΟ 3 ο

Bubble Hack Οπτικοποίηση του αλγορίθμου ταξινόμησης Bubble Sort στο Scratch

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

ΒΑΣΙΚΕΣ ΕΠΕΞΕΡΓΑΣΙΕΣ ΜΟΝΟΔΙΑΣΤΑΤΩΝ ΚΑΙ ΔΙΣΔΙΑΣΤΑΤΩΝ ΠΙΝΑΚΩΝ ΟΙ ΠΙΟ ΣΗΜΑΝΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ

Προγραμματισμός Η/Υ. 4 η ενότητα: Δομές Δεδομένων. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

Δομές δεδομένων και Αλγόριθμοι

Τελικό διαγώνισμα. Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΘΕΜΑ Α

ΑΕΠΠ - ΗΜΕΡΗΣΙΑ ΛΥΚΕΙΑ ΘΕΜΑΤΑ ΚΑΙ ΛΥΣΕΙΣ

Αλγόριθµοι Αναζήτησης και Ταξινόµησης

Δομές Δεδομένων. Τι είναι η δομή δεδομένων; Έστω η ακολουθία αριθμών: 8, 10,17,19,22,5,12 Λογικό Επίπεδο. Φυσικό Επίπεδο RAM. Ταξινομημένος.

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

ΘΕΜΑ Α. Λύση: 1. Σωστό, 2. Λάθος, 3. Σωστό, 4. Λάθος, 5. Λάθος. Ποια η διαφορά μεταξύ διερμηνευτή και μεταγλωττιστή; Απάντηση:

ΤΕΛΟΣ 1ΗΣ ΑΠΟ 5 ΣΕΛΙ ΕΣ

I. ΑΛΓΟΡΙΘΜΟΣ II. ΠΡΑΞΕΙΣ - ΣΥΝΑΡΤΗΣΕΙΣ III. ΕΠΑΝΑΛΗΨΕΙΣ. 1. Τα πιο συνηθισμένα σενάρια παραβίασης αλγοριθμικών κριτηρίων είναι:

Αν ένα πρόβλημα λύνεται από δύο ή περισσότερους αλγόριθμους, ποιος θα είναι ο καλύτερος; Με ποια κριτήρια θα τους συγκρίνουμε;

ΚΕΦΑΛΑΙΟ 3 Ο ΟΜΕΣ Ε ΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές

ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων

Σε μια στοίβα 10 θέσεων έχουν τοποθετηθεί διαδοχικά τα στοιχεία: Σ, Γ, Μ, Α, Δ στην 1η, 2η, 3η, 4η και 5η θέση αντίστοιχα. Να προσδιορίσετε την τιμή

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ

Α1. Στον προγραµµατισµό χρησιµοποιούνται δοµές δεδοµένων. 1. Τι είναι δυναµική δοµή δεδοµένων; Μονάδες 3 2. Τι είναι στατική δοµή δεδοµένων;

ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ

Δομές Δεδομένων. Ενότητα 2: Στοίβες Εισαγωγή-Υλοποίηση ΑΤΔ Στοίβα με Πίνακα-Εφαρμογή Στοίβας: Αντίστροφη Πολωνική Γραφή. Καθηγήτρια Μαρία Σατρατζέμη

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ. 1ο ΓΕΛ ΠΕΥΚΗΣ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ B' ΤΕΤΡΑΜΗΝΟΥ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 05/03/2012 ΑΠΑΝΤΗΣΕΙΣ. ΘΕΜΑ Α Α1. Α2. 1. ΣΩΣΤΟ 1 στ 2. ΛΑΘΟΣ 2 δ 3. ΣΩΣΤΟ 3 ε 4. ΛΑΘΟΣ 4 β 5. ΣΩΣΤΟ 5 γ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Διάρκεια 3 ώρες. Όνομα... Επώνυμο... Βαθμός...

Βασικές δοµές δεδοµένων. Ορολογία λιστών. 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας

ΘΕΜΑ Α: Μονάδες 12. Δ. Δίνεται ο πίνακας δύο διαστάσεων

Προγραμματισμός Η/Υ. Αναζήτηση & Ταξινόμηση. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Κεφάλαιο 2.2: Αλγόριθμοι. Επιστήμη ΗΥ Κεφ. 2.2 Καραμαούνας Πολύκαρπος

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗΝ Α.Ε.Π.Π. Γ ΤΕΧΝΟΛΟΓΙΚΗΣ. Όνομα:.. Βαθμός: /100

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΑΝΑΠΤΥΞΗΣ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΤΑΞΗ / ΤΜΗΜΑ : Γ ΛΥΚΕΙΟΥ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΡΤΙΟΣ 2018 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 6 (ΕΞΙ)

Α1. Χαρακτηρίστε τις παρακάτω προτάσεις ως σωστές ή λανθασμένες.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο ΚΕΦΑΛΑΙΟ

Β. Να εξηγήσετε τι σηµαίνει ολίσθηση ενός δυαδικού αριθµού 3 θέσεις αριστερά µπορεί να είναι: Α: ουρά Β:στοίβα Γ:και τα δυο :τίποτα

Θέµατα 2012 Λύσεις. Θέµα Α Α1. 1. λάθος 2. λάθος 3. σωστό 4. λάθος 5. σωστό

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η

Επανάληψη Θεωρίας. Καστούμης Γιώργος

7. Στις στατικές δοµές δεδοµένων, το ακριβές µέγεθος της απαιτούµενης µνήµης καθορίζεται

ΘΕΜΑΤΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΕΞΕΤΑΣΕΩΝ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΑΕΠΠ 7o Επαναληπτικό Διαγώνισμα

ΠΡΟΣ: Τηλέφωνο: Ινστιτούτο Εκπαιδευτικής Πολιτικής ΚΟΙΝ.:

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ

Προτεινόμενος τρόπος διδασκαλίας του μαθήματος με ενδεικτικό χρονοπρογραμματισμό. Α/Α Ενότητες Περιγραφή Ώρες 1 Εισαγωγικό μάθημα 1

Δομές Δεδομένων (Data Structures)

Φίλη μαθήτρια, φίλε μαθητή

Ενδεικτικές Απαντήσεις στο μάθημα Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

Α1. Να γράψετε στο τετράδιό σας τον αριθµό καθεµιάς από τις παρακάτω προτάσεις 1-5 και, δίπλα, τη λέξη ΣΩΣΤΟ, αν η πρόταση είναι σωστή, ή τη λέξη

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 8 Ο. Ταξινόμηση και Αναζήτηση Συναρτήσεις χειρισμού οθόνης ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

ΤΕΛΟΣ 1ΗΣ ΑΠΟ 5 ΣΕΛΙ ΕΣ

Βασικές Δομές Δεδομένων

Πρόβλημα 37 / σελίδα 207

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΜΗΜΑ: Γ2

Εισαγωγή στις Αρχές της επιστήμης των Η/Υ. Β Λυκείου

8. Λεξιλόγιο μιας γλώσσας είναι όλες οι ακολουθίες που δημιουργούνται από τα στοιχεία του αλφαβήτου της γλώσσας, τις λέξεις.

ΘΕΜΑ 1 ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Γ ΛΥΚΕΙΟΥ 3 ΩΡΕΣ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΗΜΕΡΟΜΗΝΙΑ: 6/04/2014

Κεφάλαιο 1. Τι είναι πληροφορία Με τον όρο πληροφορία αναφέρεται οποιοδήποτε γνωσιακό στοιχείο προέρχεται από επεξεργασία δεδοµένων.

Παράδειγμα 1. Υπολογισμός μέγιστου ποσού

Δομές Δεδομένων. Ενότητα 6: Εφαρμογή Συνδεδεμένων Λιστών: Αλφαβητικό ευρετήριο κειμένου- Υλοποίηση ΑΤΔ Στοίβα και Ουρά με δείκτες

ΕΚΠΑΙΔΕΥΤΗΡΙΑ ΝΕΑ ΠΑΙΔΕΙΑ

ΠΕΡΙΕΧΟΜΕΝΑ Δεδομένα Αλγόριθμοι + Δομές δεδομένων = Προγράμματα Πίνακες Στοίβα και ουρά Αναζήτηση και Ταξινόμηση Αναδρομή Αλλες δομές δεδομένων

ΓΕΝΙΚΕΣ ΟΔΗΓΙΕΣ ΔΙΔΑΣΚΑΛΙΑΣ

Ταξινόμηση. Ταξινόμηση ευθείας ανταλλαγής (Φυσαλίδα) 1) Να ταξινομηθεί ο πίνακας Α[Ν] σε αύξουσα σειρά με τη μέθοδο της φυσαλίδας.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΟΝΟΜΑΤΕΠΩΝΥΜΟ:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ σε ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ (ΑΕΠΠ) Σημειώσεις Θεωρίας

ΤΕΛΙΚΟ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ

Transcript:

1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 3ο: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΜΕΡΟΣ 2 ο : ΣΤΟΙΒΑ & ΟΥΡΑ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/

ΣΤΟΙΒΑ 2 Μια στοίβα δεδομένων, μοιάζει με οποιαδήποτε άλλη στοίβα αντικειμένων στον πραγματικό κόσμο Μπορούμε να τοποθετήσουμε ή να αφαιρέσουμε αντικείμενα μόνο από την κορυφή της στοίβας Το τελευταίο αντικείμενο που τοποθετείται στη στοίβα εξάγεται πρώτο, και το πρώτο αντικείμενο που τοποθετήθηκε στη στοίβα, μπορεί να εξαχθεί αφού πρώτα εξαχθούν όλα τα προηγούμενα Τελευταίο μέσα, πρώτο έξω (LIFO Last In, First Out)

ΛΕΙΤΟΥΡΓΙΕΣ ΣΤΟΙΒΑΣ 3 Ώθηση (push) στοιχείου στην κορυφή της στοίβας Απώθηση (pop) στοιχείου από την κορυφή της στοίβας

ΕΛΕΓΧΟΣ ΛΕΙΤΟΥΡΓΙΩΝ 4 Η λειτουργία της ώθησης, πρέπει οπωσδήποτε να ελέγχει εάν η στοίβα είναι γεμάτη, οπότε συμβαίνει υπερχείλιση (overflow) της στοίβας Αντίστοιχα, η λειτουργία της απώθησης, πρέπει να ελέγχει αν υπάρχει τουλάχιστον ένα στοιχείο στη στοίβα, γιατί εάν η στοίβα είναι άδεια τότε συμβαίνει υποχείλιση (underflow) της στοίβας

ΥΛΟΠΟΙΗΣΗ ΣΤΟΙΒΑΣ ΜΕ ΠΙΝΑΚΕΣ 5 Η υλοποίηση μιας στοίβας με πίνακα είναι πολύ απλή Χρήση ενός μονοδιάστατου πίνακα μεγέθους ν (το μέγιστο δυνατό μέγεθος στοίβας) Χρειαζόμαστε μια επιπλέον μεταβλητή (Top), η οποία θα μας δείχνει τη θέση του πίνακα στην οποία βρίσκεται η κορυφή της στοίβας (το τελευταίο στοιχείο δηλαδή) Για να εξαχθεί ένα στοιχείο (απώθηση): Εξάγουμε το στοιχείο Stack[Top] Top Top - 1 Για να εισαχθεί στοιχείο (ώθηση): Top Top +1 Τοποθετούμε το νέο στοιχείο στη θέση Stack[Top] ΠΡΟΣΟΧΗ ΣΤΟΝ ΕΛΕΓΧΟ ΕΑΝ ΜΠΟΡΟΥΝ ΝΑ ΕΚΤΕΛΕΣΤΟΥΝ ΟΙ ΛΕΙΤΟΥΡΓΙΕΣ!!!

ΟΥΡΑ 6 Ανάλογα με τη στοίβα, η ουρά δεδομένων, είναι μια ουρά αναμονής αντίστοιχη με οποιαδήποτε άλλη πραγματική ουρά (π.χ. ουρά σε ταμείο τράπεζας) Η σειρά εξόδου από την ουρά (η σειρά εξυπηρέτησης δηλαδή) είναι η σειρά με την οποία μπήκαν στην ουρά, δηλαδή το πρώτο αντικείμενο που μπήκε στην ουρά θα βγει πρώτο, και το τελευταίο θα βγει μετά από όλα τα προηγούμενα Πρώτο μέσα, πρώτο έξω (First In, First Out FIFO)

ΛΕΙΤΟΥΡΓΙΕΣ ΟΥΡΑΣ 7 Εισαγωγή (enqueue) στοιχείου στο πίσω άκρο της ουράς Εξαγωγή (dequeue) στοιχείου από το εμπρός άκρο της ουράς

ΥΛΟΠΟΙΗΣΗ ΟΥΡΑΣ ΜΕ ΠΙΝΑΚΕΣ 8 Υλοποιείται με ένα μονοδιάστατο πίνακα Απαιτούνται δύο δείκτες για την υλοποίηση της ουράς: Ένας δείκτης να δείχνει το πρώτο στοιχείο προς εξαγωγή (front) Ένας δείκτης να δείχνει το τελευταίο στοιχείο, το οποίο μόλις εισήλθε στην ουρά(back) Κατά την εξαγωγή του στοιχείου: εξάγεται το στοιχείο Q[front] front front + 1 Κατά την εισαγωγή στοιχείου: rear rear +1, εισάγουμε το στοιχείο στη θέση Q[rear]

9 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 3ο: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΜΕΡΟΣ 3 ο : ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ

ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ 10 Ένα από τα πιο σημαντικά ζητήματα στον προγραμματισμό Χρησιμότητα σε πληθώρα εφαρμογών Οι μέθοδοι αναζήτησης, εξαρτώνται κυρίως από το εάν ο πίνακας είναι ταξινομημένος ή όχι Επιπλέον, σημαντική παράμετρος για τον καθορισμό του τρόπου αναζήτησης, είναι το εάν τα περιεχόμενα του πίνακα είναι όλα διάφορα μεταξύ τους ή όχι. Τα στοιχεία του πίνακα μπορεί να είναι αριθμητικά ή αλφαριθμητικά

Σχολιασμός 11 Υπάρχει μεγάλη συζήτηση για την έννοια της αναζήτησης. Θεωρητικά, ένας μαθητής μπορεί να σκεφτεί και να κατασκευάσει έναν αλγόριθμο που υλοποιεί την αναζήτηση από μόνος του, εφόσον έχει κατανοήσει τη φιλοσοφία και τη δομή των πινάκων. Επομένως τι προσφέρει η συστηματική μελέτη της αναζήτησης ως αυτοτελές θέμα; Μπορούμε να απαντήσουμε συνοπτικά ότι: Συντελεί στην «κωδικοποίηση» της διαδικασίας αναζήτησης αποσαφηνίζοντας έννοιες Συντελεί, με τη χρήση διαφορετικών μεθόδων αναζήτησης, στη διευκρίνιση και το διαχωρισμό μεταξύ των διαφορετικών πιθανών ειδών αναζήτησης που μπορεί να εμφανιστούν, αλλά και στον τρόπο με τον οποίο χειριζόμαστε την κάθε μία από αυτές. Εφόσον μια άσκηση δεν ζητά ρητά την υλοποίηση της σειριακής αναζήτησης, ο κάθε μαθητής έχει την ευχέρεια να αναζητεί στοιχεία σε πίνακες με όποιο τρόπο κρίνει προσφορότερο/ευκολότερο.

ΣΕΙΡΙΑΚΗ Ή ΓΡΑΜΜΙΚΗ ΜΕΘΟΔΟΣ ΑΝΑΖΗΤΗΣΗΣ 12 Η πιο απλή μέθοδος αναζήτησης Μη ταξινομημένος πίνακας Ξεκινώντας από το πρώτο στοιχείο του πίνακα, ελέγχουμε διαδοχικά τα στοιχεία του, μέχρι να βρούμε κάποιο που να έχει τιμή ίδια με αυτήν που αναζητούμε Η μέθοδος επιστρέφει 0 εάν δεν βρέθηκε στοιχείο, ή τη θέση του πίνακα στην οποία βρέθηκε το στοιχείο που αναζητούσαμε

ΣΕΙΡΙΑΚΗ Ή ΓΡΑΜΜΙΚΗ ΑΝΑΖΗΤΗΣΗ - 1 13 Αλγόριθμος Sequential_Search Δεδομένα // n, table, key // position 0 Για i από 1 μέχρι n Αν table[i]=key τότε position i Τέλος_αν Τέλος_επανάληψης Αν position= 0 τότε Εμφάνισε Δε βρέθηκε το στοιχείο Αλλιώς Εμφάνισε Το στοιχείο βρέθηκε στη θέση, position Τέλος_αν Τέλος Sequential_Search

ΣΕΙΡΙΑΚΗ Ή ΓΡΑΜΜΙΚΗ ΑΝΑΖΗΤΗΣΗ - 2 14 Αλγόριθμος Sequential_Search Δεδομένα // n, table, key // done ψευδής position 0 i 1 Όσο (done=ψευδής) και (i<=n) επανάλαβε Αν table[i]=key τότε done αληθής position i αλλιώς i i+1 Τέλος_αν Τέλος_επανάληψης Αποτελέσματα //done, position // Τέλος Sequential_Search

ΠΑΡΑΤΗΡΗΣΕΙΣ ΣΤΗ ΓΡΑΜΜΙΚΗ ΑΝΑΖΗΤΗΣΗ 15 Αν κάποιο στοιχείο υπάρχει στον πίνακα παραπάνω από μια φορά, πρέπει να τροποποιήσουμε τον αλγόριθμο, να αφαιρέσουμε τη μεταβλητή done, έτσι ώστε να συνεχίζεται η αναζήτηση μέχρι το τέλος του πίνακα

ΠΟΛΛΑΠΛΗ ΕΜΦΑΝΙΣΗ ΣΤΟΙΧΕΙΟΥ 16 Αλγόριθμος Sequential_Search Δεδομένα // n, table, key // position 0 i 1 Όσο (i<=n) επανάλαβε Αν table[i]=key τότε position i Εμφάνισε «Το στοιχείο βρέθηκε στη θέση», position Τέλος_αν i i+1 Τέλος_επανάληψης Τέλος Sequential_Search

ΑΝΑΖΗΤΗΣΗ ΠΛΗΘΟΥΣ ΕΜΦΑΝΙΣΕΩΝ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ 17 count 0 Για i από 1 μέχρι 50 Αν table[i]=key τότε count count + 1 Τέλος_αν Τέλος_επανάληψης Αν count>0 τότε Εμφάνισε Το στοιχείο υπάρχει στον πίνακα, count, φορές Αλλιώς Εμφάνισε Το στοιχείο δεν υπάρχει στον πίνακα Τέλος_αν

18 ΣΕΙΡΙΑΚΗ ΑΝΑΖΗΤΗΣΗ ΣΕ ΤΑΞΙΝΟΜΗΜΕΝΟ ΠΙΝΑΚΑ Εάν τα στοιχεία του πίνακα είναι ταξινομημένα, τότε ο αλγόριθμος πρέπει να σταματήσει, όταν συναντήσει ένα στοιχείο με τιμή μεγαλύτερη από την αναζητούμενη τιμή

19 ΣΕΙΡΙΑΚΗ ΑΝΑΖΗΤΗΣΗ ΣΕ ΤΑΞΙΝΟΜΗΜΕΝΟ ΠΙΝΑΚΑ Αλγόριθμος Sequential_Search Δεδομένα // n, table, key // position 0 i 1 Όσο (table[i]<=key) και (i<=n) επανάλαβε Αν table[i]=key τότε position i Εμφάνισε «Το στοιχείο βρέθηκε στη θέση», position Τέλος_αν i i+1 Τέλος_επανάληψης Τέλος Sequential_Search

ΠΑΡΑΔΕΙΓΜΑΤΑ 20 Πίνακας 9 αταξινόμητων αριθμών Αναζητούμε το στοιχείο 56 Απαιτούνται 4 προσπελάσεις Αναζητούμε το στοιχείο 11 Απαιτούνται 9 προσπελάσεις, δηλαδή η σάρωση ολόκληρου του πίνακα

ΑΝΑΖΗΤΗΣΗ ΣΕ ΤΑΞΙΝΟΜΗΜΕΝΟ ΠΙΝΑΚΑ 21 Ο ίδιος πίνακας ταξινομημένος Αναζητούμε το στοιχείο 56 Απαιτούνται 7 προσπελάσεις Αναζητούμε το στοιχείο 11 Απαιτούνται 3 προσπελάσεις, δεδομένου ότι το 12 είναι μεγαλύτερο από το 11, και επομένως δεν έχει νόημα να συνεχιστεί η αναζήτηση

ΤΑΞΙΝΟΜΗΣΗ 22 Από τις πιο σημαντικές λειτουργίες σε μια δομή, είναι η τοποθέτηση των κόμβων της δομής σε μια σειρά Η διαδικασία αυτή ονομάζεται ταξινόμηση (sorting) ή διάταξη (ordering) Η πιο συνήθης διάταξη, είναι η αύξουσα τάξη (ascending sequence) δηλαδή η ταξινόμηση από τη μικρότερη τιμή προς τη μεγαλύτερη. Ο απώτερος σκοπός της ταξινόμησης, είναι να διευκολυνθεί η μετέπειτα αναζήτηση των στοιχείων μέσα στη δομή αυτή. Η χρησιμότητα της ταξινόμησης, πρακτικά αποδεικνύεται σε οποιαδήποτε μορφή αναζήτησης δεδομένων που ανακαλούμε από τον πραγματικό κόσμο (αναζήτηση τηλεφώνων από κατάλογο, λεξικά, βιβλιοθηκονομικά συστήματα, κτλ)

ΤΥΠΙΚΟΣ ΟΡΙΣΜΟΣ ΤΑΞΙΝΟΜΗΣΗΣ 23 Δοθέντων των στοιχείων a 1,a 2,...,a n η ταξινόμηση συνίσταται στη μετάθεση (permutation) της θέσης των στοιχείων, ώστε να τοποθετηθούν σε μία σειρά a k1,a k2,...,a kn έτσι ώστε, δοθείσης μίας συνάρτησης διάταξης (ordering function), f, να ισχύει: f(a k1 ) <= f(a k2 ) <=... <= f(a kn )

ΤΑΞΙΝΟΜΗΣΗ ΕΥΘΕΙΑΣ ΑΝΤΑΛΛΑΓΗΣ 24 Η ταξινόμηση με τη μέθοδο της ευθείας ανταλλαγής (straight exchange sort), βασίζεται στην αρχή της σύγκρισης και της ανταλλαγής θέσεως δύο διαδοχικών στοιχείων του πίνακα, μέχρις ότου διαταχθούν όλα τα στοιχεία. Γίνονται διαδοχικές προσπελάσεις κάθε φορά, και μετακινείται η μικρότερη τιμή του πίνακα προς τις πρώτες θέσεις.

ΤΑΞΙΝΟΜΗΣΗ ΦΥΣΣΑΛΙΔΑΣ 25 Αν θεωρήσουμε τον πίνακα κατακόρυφο αντί για οριζόντιο, και κάθε τιμή ενός στοιχείου πίνακα, μια φυσσαλίδα με βάρος ανάλογο με την τιμή του στοιχείου, τότε ο αλγόριθμος ευθείας ανταλλαγής, τοποθετεί σταδιακά τις φυσσαλίδες, στο κατάλληλο επίπεδο βάρους, οπότε στο τέλος η ελαφρύτερη φυσσαλίδα βρίσκεται στην κορυφή, και η βαρύτερη στο κατώτερο μέρος του πίνακα

ΤΑΞΙΝΟΜΗΣΗ ΦΥΣΣΑΛΙΔΑΣ 26

ΑΛΓΟΡΙΘΜΟΣ ΤΑΞΙΝΟΜΗΣΗΣ ΦΥΣΣΑΛΙΔΑΣ 27 Αλγόριθμος Φυσσαλίδα Δεδομένα // table, n // Για i από 2 μέχρι n Για j από n μέχρι i με_βήμα 1 Αν table[j-1] > table[j] τότε temp table [j-1] table[j-1] table[j] table[j]temp Τέλος_αν Τέλος_επανάληψης Τέλος_επανάληψης Αποτελέσματα // table // Τέλος Φυσσαλίδα Οι τρεις αυτές εντολές, ΜΟΝΟ σε αλγόριθμο (και όχι σε πρόγραμμα) μπορούν να αντικατασταθούν από την εντολή: αντιμετάθεσε table[j], table [j-1]

28 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 3ο: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΜΕΡΟΣ 4 ο : ΔΥΝΑΜΙΚΕΣ ΔΟΜΕΣ

ΔΥΝΑΜΙΚΕΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ 29 Δομές στις οποίες η αποθήκευση των κόμβων δεν γίνεται σε συνεχόμενες θέσεις μνήμης. Οι δυναμικές δομές δεν έχουν σταθερό μέγεθος και το μέγεθός τους μπορεί να μεταβληθεί κατά τη διάρκεια του προγράμματος Οι σπουδαιότερες είναι: Λίστες Δένδρα Γράφοι

ΔΕΙΚΤΕΣ (POINTERS) 30 Ιδιαίτερος τύπος που είναι διαθέσιμος στις περισσότερες σύγχρονες γλώσσες προγραμματισμού Δεν λαμβάνει αριθμητικές ή άλλες τιμές, αλλά οι τιμές που λαμβάνει είναι διευθύνσεις στην κύρια μνήμη. Δηλαδή κάθε δείκτης «δείχνει» σε μια θέση μνήμης. Χρησιμοποιούνται για τη σύνδεση των διαφόρων στοιχείων μιας δυναμικής δομής δεδομένων. Οι δομές που χρησιμοποιούν δείκτες καλούνται δυναμικές γιατί η υλοποίησή τους γίνεται με τέτοιο τρόπο ώστε να μη χρειάζεται να προκαθορίζεται το μέγιστο πλήθος κόμβων τους. Αυτό προσφέρει μεγαλύτερη ευελιξία (σε σύγκριση με τη στατική δομή του πίνακα) καθώς το μέγεθος τους μπορεί να επεκταθεί και να συρρικνωθεί κατά τη διάρκεια της εκτέλεσης του προγράμματος

ΛΙΣΤΕΣ 31 Λίστα: Μια σειρά από κόμβους συνδεδεμένους μεταξύ τους. Πρόβλημα: Οι κόμβοι δε βρίσκονται σε συνεχόμενες θέσεις στη μνήμη Λύση: Σύνδεση των διαφορετικών κόμβων της λίστας μεταξύ τους με δείκτες (pointers) που δείχνουν - παραπέμπουν στη θέση που βρίσκεται το στοιχείο της λίστας με το οποίο συνδέονται.

ΔΟΜΗ ΚΟΜΒΟΥ ΛΙΣΤΑΣ 32 ΔΕΔΟΜΕΝΑ ΔΕΙΚΤΗΣ Σε κάθε κόμβο μιας δομής όπως η λίστα, υπάρχει εκτός από το πεδίο των δεδομένων, ένα ακόμη πεδίο που είναι ο δείκτης της λίστας Το πεδίο των δεδομένων μπορεί να περιέχει μια ή περισσότερες αλφαριθμητικές ή αριθμητικές πληροφορίες.

ΛΕΙΤΟΥΡΓΙΕΣ ΛΙΣΤΑΣ 33 Εισαγωγή κόμβου μεταξύ 2 ου και 3 ου στοιχείου στη λίστα 1. Ο δείκτης του δεύτερου κόμβου αλλάζει ώστε να δείχνει το νέο κόμβο. 2. Στο νέο κόμβο, ο δείκτης δείχνει τη θέση που ήταν το 3 ο στοιχείο της λίστας (το οποίο πλέον είναι 4 ο ), δηλαδή εκεί που έδειχνε ο δείκτης του 2 ου πριν αλλάξει. Οι κόμβοι διατηρούν τη λογική τους σειρά. Οι φυσικές θέσεις στη μνήμη μπορεί να είναι τελείως διαφορετικές

ΛΕΙΤΟΥΡΓΙΕΣ ΛΙΣΤΑΣ (2) 34 Διαγραφή του 3 ου κόμβου της λίστας 1. Για τη διαγραφή, αρκεί να αλλάξει τιμή ο δείκτης του 2 ου στοιχείου, και να δείχνει απευθείας το 4 ο στοιχείο (εκεί που δείχνει το 3 ο στοιχείο δηλαδή), προσπερνώντας τελείως το 3 ο στοιχείο. 2. Ο διαγραμμένος κόμβος χαρακτηρίζεται πλέον ως «αχρηστο δεδομένο» και ο χώρος που καταλαμβάνει στη μνήμη γίνεται διαθέσιμος για οποιαδήποτε άλλη χρήση.

ΔΕΝΤΡΑ (trees) 35 Βασικό χαρακτηριστικό είναι η «δενδροειδής» δομή, δηλαδή ότι από έναν κόμβο, δεν υπάρχει μόνο ένας επόμενος Όλοι οι κόμβοι ξεκινούν από έναν αρχικό κόμβο, τη ρίζα. Οι κόμβοι που ξεκινούν από εκεί αποκαλούνται παιδιά της ρίζας. Τα «παιδιά» μπορεί να έχουν και δικά τους «παιδιά» κτλ Υλοποιούνται με τη χρήση δεικτών Μπορούν να υλοποιηθούν και με στατικές δομές (πίνακες)

ΓΡΑΦΟΙ 36 Ένας γράφος αποτελείται από ένα σύνολο κόμβων (ή σημείων ή κορυφών) και ένα σύνολο γραμμών (ή ακμών ή τόξων) τα οποία ενώνουν μερικούς ή όλους τους κόμβους. Αποτελεί την πιο γενική δομή δεδομένων Όλες οι προηγούμενες περιπτώσεις, μπορούν να θεωρηθούν εκδοχές γράφου. Χρησιμοποιούνται για την αναπαράσταση πολλών προβλημάτων και καταστάσεων της καθημερινότητας. Π.χ. οι πόλεις είναι τα σημεία ενός γράφου και ακμές οι οδικές συνδέσεις μεταξύ τους. Μεγάλη πληθώρα προβλημάτων σχετίζεται με γράφους, γι αυτό και έχει αναπτυχθεί η Θεωρία Γράφων.