Εισαγωγή στην επιστήμη των υπολογιστών. Οργάνωση εδομένων Κεφάλαιο 11ο ομές εδομένων



Σχετικά έγγραφα
Ευρετήρια. Ευρετήρια. Βάσεις Δεδομένων : Ευρετήρια 1

Ευρετήρια. Ευρετήρια. Βάσεις Δεδομένων : Ευρετήρια 1

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

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

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

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

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

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

Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Τα δεδοµένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο Για να επεξεργαστούµε τα δεδοµένα θα πρέπει αυτά να βρίσκονται στη

#2 Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα

Υλοποίηση Λιστών. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:

Διασυνδεδεμένες Δομές. Λίστες. Προγραμματισμός II 1

υναµικές οµές εδοµένων

Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές

Πληροφορική II. Ενότητα 5 : Δομές Δεδομένων και αφηρημένοι. τύποι δεδομένων. Δρ. Γκόγκος Χρήστος

Εργαστήριο 4: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Ταξινομημένη Λίστα

4. Συνδεδεμένες Λίστες

Προγραμματισμός Ι (ΗΥ120)

Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου

Insert(K,I,S) Delete(K,S)

ΠΛΗ111. Ανοιξη Μάθηµα 3 ο. Συνδεδεµένες Λίστες. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Διάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Στοίβες - Ουρές. Στοίβα (stack) Γιάννης Θεοδωρίδης, Νίκος Πελέκης, Άγγελος Πικράκης Τµήµα Πληροφορικής

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33

Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή

έντρα ομές εδομένων 3ο εξάμηνο ιδάσκων: Χρήστος ουλκερίδης ιαφάνειες προσαρμοσμένες από το υλικό της Μαρίας Χαλκίδη

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

ιαφάνειες παρουσίασης #11

Υπηρεσία Ψηφιακής Χαρτοθήκης Ο ΗΓΟΣ ΧΡΗΣΗΣ ΓΙΑ ΑΝΑΖΗΤΗΣΗ ΧΑΡΤΩΝ. Βιβλιοθήκη Πανεπιστηµίου Αιγαίου Μυτιλήνη, Μάιος 2007

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

Διάλεξη 08: Λίστες ΙΙ Κυκλικές Λίστες

Ενότητα 2 Στοίβες Ουρές - Λίστες. ΗΥ240 - Παναγιώτα Φατούρου 1

Διάλεξη 08: Λίστες ΙΙ Κυκλικές Λίστες

Στοίβες Ουρές - Λίστες

Ιδιοκτησία Αντικειµένου

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Βάσεις εδοµένων. Βασίλειος Βεσκούκης, Εµµ. Στεφανάκης ΜΟΝΤΕΛΟΠΟΙΗΣΗ Ε ΟΜΕΝΩΝ, ΚΛΑΣΙΚΑ ΜΟΝΤΕΛΑ Ε ΟΜΕΝΩΝ

Διδάσκων: Παναγιώτης Ανδρέου

ΗΥ360 Αρχεία και Βάσεις εδοµένων

ΠΛΗ111. Ανοιξη Μάθηµα 7 ο. έντρο. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access Κεφάλαιο 2 Χειρισμός πινάκων... 27

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις

Διάλεξη 12: Λίστες Υλοποίηση & Εφαρμογές. Διδάσκων: Παναγιώτης Ανδρέου

JDSL Java Data Structures Library

Δομές Δεδομένων. Ενότητα 12: Κατακερματισμός: Χειρισμός Συγκρούσεων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

ΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος 2016 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος

IsEmptyList(L): επιστρέφει true αν L = < >, false

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση, Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14-1

Διάλεξη 1: Δομές Δεδομένων και Αλγόριθμοι - Εισαγωγή. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Εισαγωγή ενός νέου στοιχείου. Επιλογή i-οστoύ στοιχείου : Εύρεση στοιχείου με το i-οστό μικρότερο κλειδί

Κεφάλαιο 14. οµές Ευρετηρίων για Αρχεία. ιαφάνεια 14-1

Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα

Δομές Δεδομένων. Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα

Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1

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

διεύθυνση πρώτου στοιχείου διεύθυνση i-οστού στοιχείου T t[n]; &t[0] είναι t &t[i] είναι t + i*sizeof(t)

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

ιαφάνειες παρουσίασης #3

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής T.E.I. ΘΕΣΣΑΛΟΝΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη

Ενότητα 2 Στοίβες Ουρές - Λίστες

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Σχεδίαση Βάσεων Δεδομένων

Κεφάλαιο 5. Δημιουργία φορμών για τη βάση δεδομένων DVDclub

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 7: Πρόγραμμα Συνδεδεμένης Λίστας και Διαδικασιών. Μανόλης Γ.Η.

Επιλογές και Κριτήρια Σχεδιασμού ΑΤΔ Ανεξαρτήτως από Γλώσσα Υλοποίησης 24/4/2012

Μονοδιάστατοι Πίνακες

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

υναµικές οµές εδοµένων (συν.) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα:

Κοινωνικά Δίκτυα Αναζήτηση Πληροφοριών σε Δίκτυα

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

10. Πίνακες Κατακερματισμού

Επεξεργασία Ερωτήσεων

Τύποι Δεδομένων. Κατηγορίες Τύπων Δεδομένων ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός Κων/νος Φλώρος

Επεξεργασία Ερωτήσεων

Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων

Ενότητα 7 Ουρές Προτεραιότητας

Προγραμματισμός Δομές Δεδομένων

Alternative to Balanced Trees, Comms of the ACM, 33(6), June 1990,

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

Οργάνωση Γεωγραφικών. πληροφοριών

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

Β ΠΕΡΙΦΕΡΕΙΑ ΠΕΙΡΑΙΩΣ ΠΑΣΟΚ EK. T ΖΑΧΑΡΟΠΟΥΛ ΟΣ ΠΡΟΔΡΟΜΟΣ ΜΥΡΓΙΑΛΗ ΧΡΥΣΟΥΛΑ (ΧΡΥΣΑ) ΜΑΓΙΑΤΗΣ ΙΩΑΝΝΗΣ ΧΑΤΖΗΜΑΝΩΛ ΗΣ ΕΥΑΓΓΕΛΟΣ ΔΙΑΜΑΝΤΙΔΗΣ ΙΩΑΝΝΗΣ

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

Λίστα. Το διάνυζμα (vector) στο Mathematica είναι μια λίστα που έχει τα στοιχεία. Ο πίνακας ( matrix ) είναι λίστα απο τις λίστες.

Προγραμματισμός Η/Υ. Ενότητα 9: Ειδικά θέματα Δομών Δεδομένων

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

Τα δεδομένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο

Κεφ.11: Ευρετήρια και Κατακερματισμός

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο


Οντοκεντρικός Προγραμματισμός

Προγραµµατισµός Ι (ΗΥ120)

ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ. Επίπεδα Αφαίρεσης Σ Β. Αποθήκευση Εγγραφών - Ευρετήρια. ρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, Επίπεδο Όψεων.

Αποθήκευση και Οργάνωση αρχείων. Βάσεις Δεδομένων Μάθημα 2ο Διδάσκων: Μαρία Χαλκίδη

Transcript:

Εισαγωγή στην επιστήμη των υπολογιστών Οργάνωση εδομένων Κεφάλαιο 11ο ομές εδομένων 1

ομή εδομένων Μια δομή δεδομένων (data structure) χρησιμοποιεί μια συλλογή από σχετικές μεταξύ τους μεταβλητές, οι οποίες μπορούν να προσπελάζονται ξεχωριστά ή ως μία και μοναδική οντότητα. Με άλλα λόγια, μια δομή δεδομένων αντιπροσωπεύει ένα σύνολο από στοιχεία δεδομένων τα οποία έχουν μια συγκεκριμένη σχέση μεταξύ τους. 2

3

Πίνακες Ένας πίνακας (array) είναι μια σταθερού μεγέθους σειριακή δομή στοιχείων του ίδιου τύπου δεδομένων Οι δείκτες υποδηλώνουν τον αύξοντα αριθμό (τάξη) του στοιχείου ξεκινώντας από την αρχή του πίνακα 4

Πίνακες 5

Πίνακες 6

Πίνακες 7

Εφαρμογές Πινάκων (Πίνακες Συχνοτήτων) 8

Εφαρμογές Πινάκων (Ιστογράμματα) 9

ΙΣ ΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ 10

11

ΙΣ ΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ ( ιάταξη Μνήμης) 12

13

ΕΓΓΡΑΦΕΣ Μια εγγραφή (record) είναι μια συλλογή από σχετικά μεταξύ τους στοιχεία, πιθανώς διαφορετικών τύπων, η οποία έχει ένα μοναδικό όνομα. Κάθε στοιχείο μιας εγγραφής ονομάζεται πεδίο. Το πεδίο (field) είναι το μικρότερο στοιχείο ενός επώνυμου συνόλου δεδομένων με κάποια σημασία. Στα πεδία αντιστοιχίζονται τιμές, οι οποίες με τη σειρά τους μπορούν να προσπελαστούν για επιλογή ή χειρισμό. Τα πεδία διαφέρουν από τις μεταβλητές κυρίως στο ότι αποτελούν τμήματα εγγραφών 14

ΕΓΓΡΑΦΕΣ Η διαφορά μεταξύ ενός πίνακα και μιας εγγραφής είναι ότι όλα τα στοιχεία του πίνακα πρέπει να είναι του ίδιου τύπου, ενώ τα στοιχεία μιας εγγραφής μπορεί να είναι του ίδιου τύπου ή διαφορετικών τύπων Τα στοιχεία μιας εγγραφής μπορεί να είναι του ίδιου τύπου ή διαφορετικών τύπων. Όλα όμως τα στοιχεία στην εγγραφή πρέπει να σχετίζονται μεταξύ τους 15

ΕΓΓΡΑΦΕΣ 16

ΣΥΝΔΕΔΕΜΕΝΕΣ ΛΙΣΤΕΣ Μια συνδεδεμένη λίστα (linked list) είναι μια διατεταγμένη συλλογή δεδομένων στην οποία κάθε στοιχείο περιέχει τη θέση του επόμενου στοιχείου, δηλαδή κάθε στοιχείο χωρίζεται σε δύο τμήματα: τα δεδομένα το σύνδεσμο (link). 17

ΣΥΝΔΕΔΕΜΕΝΕΣ ΛΙΣΤΕΣ Το τμήμα των δεδομένων φιλοξενεί τις χρήσιμες πληροφορίες, δηλαδή τα δεδομένα προς επεξεργασία. Ο σύνδεσμος χρησιμεύει για τη σύνδεση των δεδομένων. Περιέχει ένα δείκτη (pointer), δηλαδή μια διεύθυνση η οποία προσδιορίζει το επόμενο στοιχείο στη λίστα 18

ΣΥΝΔΕΔΕΜΕΝΕΣ ΛΙΣΤΕΣ 19

Κόμβοι Τα στοιχεία μιας συνδεδεμένης λίστας ονομάζονται κόμβοι. Ένας κόμβος (node) σε μια συνδεδεμένη λίστα είναι μια εγγραφή η οποία διαθέτει τουλάχιστον δύο πεδία: Ένα για τα δεδομένα Ένα για τη διεύθυνση του επόμενου στη σειρά κόμβου 20

Κόμβοι Οι κόμβοι μιας συνδεδεμένης λίστας ονομάζονται αυτοαναφορικές εγγραφές (self-referential records). Κάθε παρουσία αυτοαναφορικής εγγραφής περιέχει ένα δείκτη σε μια άλλη παρουσία του ίδιου δομικού τύπου. 21

ΕΙΚΤΕΣ ΣΕ ΣΥΝ Ε ΕΜΕΝΕΣ ΛΙΣΤΕΣ Μια συνδεδεμένη λίστα πρέπει να έχει πάντοτε ένα δείκτη αρχής. Ανάλογα με το πώς χρησιμοποιείται η λίστα, μπορεί να διαθέτει και πολλούς άλλους δείκτες 22

ΛΕΙΤΟΥΡΓΙΕΣ ΣΕ ΣΥΝ Ε ΕΜΕΝΕΣ ΛΙΣΤΕΣ Εισαγωγή κόμβου ιαγραφή κόμβου Αναζήτηση σε λίστα Ανάκτηση κόμβου ιάσχιση λίστας 23

Εισαγωγή κόμβου Για την εισαγωγή ενός κόμβου σε μια συνδεδεμένη λίστα ακολουθούνται τα τρία επόμενα βήματα 1. εσμεύεται η μνήμη για το νέο κόμβο και την εγγραφή των δεδομένων. 2. Ονέοςκόμβοςρυθμίζεταιώστεναδείχνει στον επόμενό του. 3. Ο προηγούμενος κόμβος ρυθμίζεται ώστε να δείχνει στο νέο κόμβο 24

Εισαγωγή κόμβου 25

ιαγραφή κόμβου 26

Αναζήτηση σε λίστα Για να γίνει αναζήτηση σε λίστα με βάση κάποιο κλειδί απαιτείται ένα πεδίο κλειδιού. Για τις απλές λίστες το κλειδί και τα δεδομένα μπορεί να είναι το ίδιο πεδίο. Για τις πιο σύνθετες λίστες χρειάζεται ένα ξεχωριστό πεδίο κλειδιού Αφού δοθεί το κλειδί προορισμού, διεξάγεται η αναζήτηση στη διατεταγμένη λίστα με σκοπό να εντοπιστεί ο αιτούμενος κόμβος. Αν κάποιος κόμβος της λίστας ταιριάζει με την τιμή προορισμού, η αναζήτηση επιστρέφει true Αν δε βρεθούν κόμβοι που να ταιριάζουν, η αναζήτηση επιστρέφει false. 27

ιάσχιση λίστας 28