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

Σχετικά έγγραφα
ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

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

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

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

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

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

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

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 3 ο. Πίνακες. Επικοινωνία:

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

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

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

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

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

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

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

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

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

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος

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

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

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

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

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

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

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

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

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

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

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

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

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

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

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

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

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

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

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

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

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

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

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

Πληροφορική 2. Δομές δεδομένων και αρχείων

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

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

3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ. n! = 1*2*3*..(n-1)*n. n! = 1 αν n = 0, = n*(n-1)! αν n > ΑΝΑ ΡΟΜΗ Εισαγωγή

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

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

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

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

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

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

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

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

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

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

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

Περιεχόμενα. Τεχνικές σχεδίασης αλγορίθμων 57. Τεχνικές σχεδίασης αλγορίθμων...217

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

ΘΕΜΑ 1 Ο Α1. Δίνονται οι παρακάτω εντολές από ένα τμήμα προγράμματος:

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

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

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

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

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Κεφάλαια 2,7,8

Επιμέλεια: Ομάδα Διαγωνισμάτων από Το στέκι των πληροφορικών

8. Η δημιουργία του εκτελέσιμου προγράμματος γίνεται μόνο όταν το πηγαίο πρόγραμμα δεν περιέχει συντακτικά λάθη.

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

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΤΕΛΟΣ 1ΗΣ ΣΕΛΙΔΑΣ

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

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

Α2. Να γράψετε καθένα από τους αριθμούς της Στήλης Α και δίπλα ένα γράμμα της Στήλης Β, ώστε να προκύπτει η σωστή αντιστοίχιση.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ Κεφάλαια 2, 7, 8

Β[(ι-7)*15+j] ON[ι,j] temp B[j-1] B[j-1] B[j] B[j] temp. j j+1

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

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

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

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

Α2. Οι πίνακες ακεραίων Α και Β είναι μονοδιάστατοι με πέντε και τρία στοιχεία αντίστοιχα. Τα περιεχόμενα τους είναι:

Φροντιστήρια Επίγνωση Προτεινόμενα Θέματα Πανελλαδικών 2014

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

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

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

α. Προσπέλαση β. Αντιγραφή γ. ιαγραφή δ. Αναζήτηση ε. Εισαγωγή στ. Ταξινόµηση

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 3 ο. Πίνακες. Επικοινωνία:

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

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

εκτέλεση του προγράµµατος. Β. ιάλεξε όλα όσα χρειάζονται µεταξύ των προτεινόµενων Μονάδες Τυπικές επεξεργασίες σε έναν πίνακα είναι οι: a. Ταξιν

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

Transcript:

εδοµένα οµές δεδοµένων και αλγόριθµοι Τα δεδοµένα είναι ακατέργαστα γεγονότα. Η συλλογή των ακατέργαστων δεδοµένων και ο συσχετισµός τους δίνει ως αποτέλεσµα την πληροφορία. Η µέτρηση, η κωδικοποίηση, η µετάδοση της πληροφορίας αποτελεί αντικείµενο µελέτης ενός ιδιαίτερου κλάδου, της Θεωρίας Πληροφοριών. Η πληροφορική θεωρείται η επιστήµη που µελετά τα δεδοµένα από τις ακόλουθες σκοπιές: Υλικού. Το υλικό επιτρέπει στα δεδοµένα να αποθηκεύονται στην κύρια µνήµη και τις περιφερειακές συσκευές µε διάφορες αναπαραστάσεις. Τέτοιες µορφές είναι η δυαδική, ο κώδικας ASCII, ο κώδικας EBCDIC, το συµπλήρωµα του 1 ή του 2 κ.λ.π. Γλωσσών προγραµµατισµού. Οι γλώσσες προγραµµατισµού υψηλού επιπέδου επιτρέπουν τη χρήση διάφορων τύπων µεταβλητών για να περιγράψουν ένα δεδοµένο. Ο µεταφραστής κάθε γλώσσας φροντίζει για την αποδοτικότερη µορφή αποθήκευσης κάθε µεταβλητής, από πλευράς υλικού. οµών δεδοµένων. (βλέπε παρακάτω) Ανάλυσης δεδοµένων. Μελετώνται τρόποι καταγραφής και αλληλοσυσχέτισης των δεδοµένων προκειµένου να αναπαρασταθεί η γνώση για πραγµατικά γεγονότα. Εδώ ανήκουν οι τεχνολογίες των βάσεων δεδοµένων, της µοντελοποίησης δεδοµένων και της αναπαράστασης γνώσης. Αλγόριθµοι + οµές δεδοµένων = Προγράµµατα Τα δεδοµένα ενός προβλήµατος αποθηκεύονται στον υπολογιστή, είτε στην κύρια µνήµη του είτε στη δευτερεύουσα. Η αποθήκευση δεν γίνεται κατά τυχαίο τρόπο αλλά συστηµατικά χρησιµοποιώντας µια δοµή. οµή δεδοµένων είναι ένα σύνολο αποθηκευµένων δεδοµένων που υφίστανται επεξεργασία από ένα σύνολο λειτουργιών. Οι βασικές λειτουργίες ( ή πράξεις) επί των δοµών δεδοµένων είναι οι ακόλουθες: Προσπέλαση, πρόσβαση σε έναν κόµβο µε σκοπό να εξεταστεί ή να τροποποιηθεί το περιεχόµενό του.

Εισαγωγή, δηλαδή η προσθήκη νέων κόµβων σε µια υπάρχουσα δοµή. ιαγραφή, που αποτελεί το αντίστροφο της εισαγωγής, δηλαδή ένας κόµβος αφαιρείται από µια δοµή. Αναζήτηση, κατά την οποία προσπελαύνονται οι κόµβοι µιας δοµής, προκειµένου να εντοπιστούν ένας ή περισσότεροι κόµβοι που έχουν µια δεδοµένη ιδιότητα. Ταξινόµηση, όπου οι κόµβοι µιας δοµής διατάσσονται κατά αύξουσα ή φθίνουσα σειρά. Αντιγραφή, κατά την οποία όλοι οι κόµβοι ή µερικοί από τους κόµβους µιας δοµής αντιγράφονται σε µια άλλη δοµή. Συγχώνευση, κατά την οποία δυο ή περισσότερες δοµές συνενώνονται σε µια ενιαία δοµή. ιαχωρισµός, που αποτελεί την αντίστροφη πράξη της συγχώνευσης. Στην πράξη σπάνια χρησιµοποιούνται και οι οκτώ λειτουργίες για κάποια δοµή. Μια δοµή δεδοµένων µπορεί να είναι αποδοτικότερη από µια άλλη δοµή µε κριτήριο κάποια λειτουργία αλλά λιγότερο αποδοτική για κάποια άλλη λειτουργία. Γι αυτό υπάρχουν διαφορετικές δοµές από τις οποίες επιλέγεται κάθε φορά η καταλληλότερη. Υπάρχει µεγάλη εξάρτηση µεταξύ της δοµής δεδοµένων και του αλγόριθµου που επεξεργάζεται τη δοµή. Αυτό διατυπώνεται µε την εξίσωση Αλγόριθµοι + δοµές δεδοµένων = Προγράµµατα Οι δοµές δεδοµένων διακρίνονται σε δυο µεγάλες κατηγορίες: τις στατικές και τις δυναµικές. Οι δυναµικές δοµές δεν αποθηκεύονται σε συνεχόµενες θέσεις µνήµης αλλά στηρίζονται στην τεχνική της δυναµικής παραχώρησης µνήµης. Οι δοµές αυτές δεν έχουν σταθερό µέγεθος, αλλά ο αριθµός των κόµβων τους µεγαλώνει και µικραίνει καθώς στη δοµή εισάγονται νέα δεδοµένα ή διαγράφονται κάποια δεδοµένα. Όλες οι σύγχρονες γλώσσες προγραµµατισµού προσφέρουν τη δυνατότητα δυναµικής παραχώρησης µνήµης. Στην ύλη µας ωστόσο µελετάµε µόνο τις στατικές δοµές. Με τον όρο στατική δοµή δεδοµένων εννοείται ότι το ακριβές µέγεθος µνήµης καθορίζεται κατά τη στιγµή του προγραµµατισµού και κατά συνέπεια κατά τη στιγµή της µετάφρασής τους και όχι κατά τη στιγµή της εκτέλεσης του προγράµµατος (βλέπε 6 ο κεφάλαιο). Μια άλλη σηµαντική διαφορά σε σχέση µε τις δυναµικές δοµές δεδοµένων είναι ότι τα στοιχεία των στατικών δοµών δεδοµένων αποθηκεύονται σε συνεχόµενες θέσεις µνήµης. Στην πράξη οι στατικές δοµές δεδοµένων υλοποιούνται µε πίνακες. Ένας πίνακας ορίζεται ως µια δοµή που περιέχει στοιχεία του ίδιου τύπου. Η δήλωση των στοιχείων ενός πίνακα και η µέθοδος αναφοράς τους εξαρτάται από τη συγκεκριµένη γλώσσα υψηλού

επιπέδου που χρησιµοποιείται. Γενικά, η αναφορά στα στοιχεία ενός πίνακα γίνεται µε τη χρήση του συµβολικού ονόµατος του πίνακα ακολουθούµενου από την τιµή ενός ή περισσότερων δεικτών σε παρένθεση ή αγκύλες. Ένας πίνακας µπορεί να είναι µονοδιάστατος, δισδιάστατος και γενικά ν-διάστατος. Στοίβα Μια στοίβα δεδοµένων µοιάζει µε µια στοίβα από πιάτα. Τα δεδοµένα που βρίσκονται στην κορυφή της στοίβας λαµβάνονται πρώτα, ενώ αυτά που βρίσκονται στο βάθος της στοίβας λαµβάνονται τελευταία. Αυτή η µέθοδος επεξεργασίας ονοµάζεται Τελευταίο µέσα, πρώτο έξω (LIFO). υο είναι οι κύριες λειτουργίες µιας στοίβας: Η ώθηση στοιχείου στην κορυφή της στοίβας Η απώθηση ενός στοιχείου από τη στοίβα Η διαδικασία της ώθησης πρέπει οπωσδήποτε να ελέγχει αν η στοίβα είναι γεµάτη, οπότε λέγεται ότι συµβαίνει υπερχείλιση της στοίβας. Αντίστοιχα η διαδικασία της απώθησης ελέγχει αν υπάρχει ένα τουλάχιστον στοιχείο στη στοίβα, δηλαδή ελέγχει αν γίνεται υποχείλιση της στοίβας. Η υλοποίηση µιας στοίβας γίνεται µε τη βοήθεια ενός µονοδιάστατου πίνακα. Μια βοηθητική µεταβλητή (µε όνοµα συνήθως top) χρησιµοποιείται για να δείχνει το στοιχείο το οποίο τοποθετήθηκε τελευταίο στην κορυφή της στοίβας. Κατά την ώθηση αρκεί να αυξηθεί η τιµή της µεταβλητής top κατά ένα και στη θέση αυτή να εισέλθει το νέο στοιχείο. Κατά την απώθηση εξέρχεται πρώτα το στοιχείο που βρίσκεται στη θέση που δείχνει η µεταβλητή top και στη συνέχεια η µεταβλητή αυτή µειώνεται κατά ένα για να δείχνει τη νέα κορυφή. Ουρά Σε µια ουρά αναµονής εκείνος που στάθηκε πρώτος στην ουρά εξυπηρετείται πρώτος. Αυτή η µέθοδος επεξεργασίας ονοµάζεται Πρώτο µέσα, πρώτο έξω (FIFO). υο είναι οι κύριες λειτουργίες που εκτελούνται σε µια ουρά: Η εισαγωγή στοιχείου στο πίσω άκρο της ουράς Η εξαγωγή στοιχείου από το εµπρός άκρο της ουράς Αντίθετα από τη στοίβα, στην περίπτωση της ουράς απαιτούνται δυο δείκτες: ο εµπρός(front) και ο πίσω(rear) δείκτης που µας δίνουν τη θέση του στοιχείου που σε πρώτη ευκαιρία θα εξαχθεί και τη θέση του στοιχείου που µόλις εισήλθε αντίστοιχα.

Η υλοποίηση µιας ουρά γίνεται µε τη βοήθεια ενός µονοδιάστατου πίνακα. Για την εισαγωγή ενός νέου στοιχείου στην ουρά αυξάνεται ο δείκτης rear κατά ένα και στη θέση αυτή τοποθετείται το στοιχείο. Κατά την εξαγωγή, εξέρχεται το στοιχείο που δείχνει ο δείκτης front, ο οποίος στη συνέχεια αυξάνεται κατά ένα για να δείχνει το επόµενο στοιχείο που πρόκειται να εξαχθεί. Σε κάθε περίπτωση πρέπει να ελέγχεται πριν από οποιαδήποτε ενέργεια αν υπάρχει ελεύθερος χώρος στον πίνακα για την εισαγωγή και αν υπάρχει τουλάχιστον ένα στοιχείο για την εξαγωγή. Αναζήτηση Υπάρχουν αρκετές µέθοδοι αναζήτησης σε πίνακα που εξαρτώνται αν ο πίνακας είναι ταξινοµηµένος ή όχι. Μια άλλη παράµετρος είναι αν ο πίνακας περιέχει στοιχεία που είναι όλα διάφορα µεταξύ τους ή όχι. Η πιο απλή µορφή αναζήτησης στοιχείου σε πίνακα είναι η σειριακή ή γραµµική µέθοδος. Η σειριακή µέθοδος είναι η πιο απλή αλλά και η λιγότερο αποτελεσµατική µέθοδος αναζήτησης. Έτσι δικαιολογείται η χρήση της µόνο σε περιπτώσεις όπου: Ο πίνακας είναι µη ταξινοµηµένος Ο πίνακας είναι µικρού µεγέθους (για παράδειγµα n 20) Η αναζήτηση σε έναν συγκεκριµένο πίνακα γίνεται σπάνια Μια αποτελεσµατικότερη µέθοδος αναζήτησης είναι η δυαδική αναζήτηση. Ταξινόµηση Η τακτοποίηση των κόµβων µιας δοµής µε µια ιδιαίτερη σειρά ονοµάζεται ταξινόµηση ή διάταξη. Ο σκοπός της ταξινόµησης είναι να διευκολυνθεί στη συνέχεια η αναζήτηση των στοιχείων του πίνακα. Ταξινόµηση ευθείας ανταλλαγής Η µέθοδος της ταξινόµησης ευθείας ανταλλαγής βασίζεται στην αρχή της σύγκρισης και ανταλλαγής ζευγών γειτονικών στοιχείων, µέχρις ότου διαταχθούν όλα τα στοιχεία. Σύµφωνα µε τη µέθοδο αυτή κάθε φορά γίνονται διαδοχικές προσπελάσεις στον πίνακα και µετακινείται το µικρότερο κλειδί της ακολουθίας προς το αριστερό άκρο του πίνακα. Αν ο πίνακας θεωρηθεί σε κατακόρυφη θέση αντί σε οριζόντια και οι ακέραιοι θεωρηθούν ως φυσαλίδες σε µια δεξαµενή νερού µε βάρη σύµφωνα µε την τιµή τους, κάθε προσπέλαση στον πίνακα έχει ως αποτέλεσµα την άνοδο της φυσαλίδας στο κατάλληλο επίπεδο βάρους. Η µέθοδος είναι γνωστή ως ταξινόµηση φυσαλίδας. Η ταξινόµηση της φυσαλίδας πραγµατοποιείται για έναν πίνακα Α[ν] µε το επόµενο τµήµα αλγόριθµου.

Για i από 2 µέχρι ν Για j από ν µέχρι i µε_βήµα -1 Αν Α[j 1] > Α[j] τότε τέλος_αν temp Α[j 1] Α[j 1] Α[j] Α[j] temp Ο παραπάνω αλγόριθµος ταξινοµεί τον πίνακα Α[ν] κατά αύξουσα σειρά, δηλαδή στην πρώτη θέση του πίνακα Α τοποθετείται το µικρότερο στοιχείο και στην τελευταία θέση το µεγαλύτερο στοιχείο. Αν επιθυµούµε το αντίθετο, δηλαδή στην πρώτη θέση να τοποθετηθεί το µεγαλύτερο στοιχείο και στην τελευταία θέση το µικρότερο στοιχείο, θα πρέπει να αντικαταστήσουµε την εντολή µε την εντολή Αν Α[j 1] > Α[j] τότε Αν Α[j 1] < Α[j] τότε Η µόνη διαφορά µεταξύ των δυο εντολών είναι το ανισοτικό σύµβολο. Υπάρχουν περιπτώσεις όπου πρέπει να ταξινοµήσουµε ταυτόχρονα δυο πίνακες. Θεωρήστε, για παράδειγµα, ότι έχουµε δυο µονοδιάστατους πίνακες Β[ν] και Α[ν] µε τα στοιχεία του Β να περιέχουν τα ονόµατα ν υπαλλήλων και τα στοιχεία του Α τις µηνιαίες αποδοχές τους. Το στοιχείο Β[1] περιέχει το όνοµα του πρώτου υπαλλήλου και το στοιχείο Α[1] τις αντίστοιχες αποδοχές του, το στοιχείο Β[2] περιέχει το όνοµα του δεύτερου υπαλλήλου και το στοιχείο Α[2] τις δικές του αποδοχές κ.ο.κ. Αν µας ζητηθεί να εµφανίσουµε τα ονόµατα των υπαλλήλων κατά αύξουσα ή φθίνουσα σειρά µηνιαίων αποδοχών, πρέπει να ταξινοµήσουµε κατάλληλα τον πίνακα Α[ν] των µηνιαίων αποδοχών και ταυτόχρονα τον πίνακα Β[ν] των ονοµάτων, ώστε να εξακολουθεί να υπάρχει αντιστοιχία µεταξύ των στοιχείων των δυο πινάκων ( το στοιχείο Β[1] να περιέχει το όνοµα ενός υπαλλήλου και το στοιχείο Α[1] τις αντίστοιχες αποδοχές του, το στοιχείο Β[2] να περιέχει το όνοµα ενός δεύτερου υπαλλήλου και το στοιχείο Α[2] τις δικές του αποδοχές κ.ο.κ.). Η

ταυτόχρονη ταξινόµηση των δυο πινάκων επιτυγχάνεται αν τροποποιήσουµε τον παραπάνω αλγόριθµο ως εξής: Για i από 2 µέχρι ν Για j από ν µέχρι i µε_βήµα -1 Αν Α[j 1] > Α[j] τότε τέλος_αν temp Α[j 1] Α[j 1] Α[j] Α[j] temp temp2 B[j 1] B[j 1] B[j] B[j] temp2 Ας σηµειωθεί ότι η ταξινόµηση φυσαλίδας είναι ο πιο απλός αλλά και ο πιο αργός αλγόριθµος ταξινόµησης. Άλλοι σχετικά απλοί αλγόριθµοι ταξινόµησης είναι η ταξινόµηση µε επιλογή και η ταξινόµηση µε παρεµβολή. Ο πιο γρήγορος αλγόριθµος ταξινόµησης είναι η «γρήγορη ταξινόµηση».