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

Σχετικά έγγραφα
Δομές Δεδομένων (Data Structures)

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Εισαγωγή. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

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

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

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

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to

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

Κεφάλαιο 10 Ψηφιακά Λεξικά

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

Δομές Δεδομένων. Ενότητα 1 - Εισαγωγή. Χρήστος Γκουμόπουλος. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων

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

Απλές Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες απλές Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλή

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

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

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

Σύνοψη Προηγούμενου. Λίστες (Lists) Συνδεδεμένες Λίστες: Εισαγωγή (1/2) Συνδεδεμένες Λίστες. Ορέστης Τελέλης

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

Διάλεξη 21η: Απλά Συνδεδεμένες Λίστες

Κεφάλαιο 11 Ένωση Ξένων Συνόλων

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ GD2670

Εισαγωγή στην Ανάλυση Αλγορίθμων (1) Διαφάνειες του Γ. Χ. Στεφανίδη

Προγραμματισμός Ι. Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Στοιχειώδεις Δομές Δεδομένων

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Δομές Δεδομένων. Λουκάς Γεωργιάδης.

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

Οι λίστες, χάνοντας τα πλεονεκτήματα των πινάκων, λύνουν προβλήματα που παρουσιάζουν οι πίνακες

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

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

Φροντιστήριο 4 Σκελετοί Λύσεων

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

Στοίβες με Δυναμική Δέσμευση Μνήμης

Δομές Αναζήτησης. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση

Standard Template Library (STL) C++ library

Κεφάλαιο 6 Ουρές Προτεραιότητας

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

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

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

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

οµηµένος Προγραµµατισµός ΙΙΙ - Java Παύλος Εφραιµίδης οµηµένος Προγρ. ΙΙΙ - 1 Java Το Μάθηµα

Δομές Δεδομένων. Παύλος Εφραιμίδης

οµηµένος Προγραµµατισµός ΙΙΙ - Java

Κεφάλαιο 2. Η δομή δεδομένων Σωρός και η Ταξινόμηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.3, 14/11/2014

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

Διάλεξη 11: Φροντιστήριο για Στοίβες. Διδάσκων: Παναγιώτης Ανδρέου. ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.

Δομημένος Προγραμματισμός ΙΙΙ - Java

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

ιαφάνειες παρουσίασης #5 (β)

JDSL Java Data Structures Library

Ουρά Προτεραιότητας: Heap

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

Week. 6: Java Collections

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

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

Δοµές Δεδοµένων. 4η Διάλεξη Στοιχειώδεις Δοµές Δεδοµένων: Πίνακες και Λίστες. Ε. Μαρκάκης

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

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Στοιχειώδεις Δοµές Δεδοµένων Δοµικά Στοιχεία και Πίνακες Κεφάλαιο 3 (3.1 και 3.2) Ε. Μαρκάκης Επικ. Καθηγητής

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

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

Δομές Δεδομένων. Λουκάς Γεωργιάδης.

Περιεχόμενα. 2 Αριθμητικά συστήματα

Κατ οίκον Εργασία 2 Σκελετοί Λύσεων

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

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

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

Δοµές Δεδοµένων. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 2

ΛΙΣΤΕΣ. Ορισμός ΑΤΔ Λίστα ΑΤΔ Ακολουθιακή Λίστα Διαχείριση Δεικτών και Λιστών στη C ΑΤΔ Συνδεδεμένη Λίστα. Εφαρμογές και Χρήση Λιστών

Δομές Δεδομένων Standard Template Library (STL) 23/3/2017 ΜΠΟΜΠΟΤΑΣ ΑΓΟΡΑΚΗΣ

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

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

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

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

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

ΑΛΓΟΡΙΘΜΟΙ ΜΕ C. ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής. CMOR Lab. Computational Methodologies and Operations Research

8.6 Κλάσεις και αντικείμενα 8.7 Δείκτες σε γλώσσα μηχανής

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

Φροντιστήριο 4 Σκελετοί Λύσεων

Περιεχόμενα. Περιεχόμενα

ΠΕΡΙΕΧΟΜΕΝΑ 1 ΚΕΦΑΛΑΙΟ ΟΙ ΥΠΟΛΟΓΙΣΤΕΣ ΑΠΟ ΤΗΝ ΑΡΧΑΙΟΤΗΤΑ ΜΕΧΡΙ ΣΗΜΕΡΑ Ιστορική αναδρομή Υπολογιστικές μηχανές

Κεφάλαιο 14 Προηγμένες Ουρές Προτεραιότητας

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Κατακερματισμός. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Πίνακες Συμβόλων. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης

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

Το µάθηµα Αντικείµενο-Περιεχόµενα µαθήµατος Τρόπος ιδασκαλίας Εργαστήριο Βιβλίο, Βιβλιογραφία On-line Υλικό 2

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

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

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

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

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

Κεφα λαιο 3 Στοιχειώδεις Δομές Δεδομένων

Ουρά Προτεραιότητας: Heap

Διδάσκων: Κωνσταντίνος Κώστα

Transcript:

Δομές Δεδομένων (Data Structures) Γραμμικές Λίστες Βασικές Έννοιες Βασικές Έννοιες. Αναπαράσταση με τύπο και με δείκτη. Γραμμικές Λίστες. Βασικές Λειτουργίες.

Δομές Δεδομένων: Βασικές Έννοιες Αντικείμενο δεδομένων: Ένα σύνολο από στοιχεία/στιγμιότυπα ή τιμές Δομή Δεδομένων (ΔΔ): αντικείμενο δεδομένων (ΑΔ) (ή αφηρημένος τύπος δεδομένων, Abstract data type, ADT) και οι συσχετίσεις/λειτουργίες μεταξύ των ξεχωριστών στοιχείων του ΑΔ. Λειτουργίες σε ΔΔ: ορισμός-εισαγωγή δεδομένων, διαγραφή, αναζήτηση, τροποποίηση, ταξινόμηση, κλπ. Εφαρμογές των ΔΔ σε αλγόριθμους και προγράμματα.

Πίνακας (Array) Η πιο στοιχειώδης δομή δεδομένων. -- Java vector Η μνήμη ενός 32-bit υπολογιστή μπορεί να είναι μέχρι 232 1 λέξεις των 32-bit. Ένας πίνακας αποτελεί μία σταθερή συλλογή δεδομένων ίδιου τύπου τα οποία αποθηκεύονται ακολουθιακά σε κάποιο σημείο της μνήμης.

Η πιο στοιχειώδης δομή δεδομένων. Πίνακας (Array) Παράδειγμα: Η δήλωση int array [ 4 ] ; δεσμεύει ένα κομμάτι 4 ακεραίων. Μπορούμε να αναφερθούμε στο j-οστό στοιχείο του πίνακα array χρησιμοποιώντας για παράδειγμα: array [ j ] = 0;

Πίνακας (Array): Πλεονεκτήματα - Μειονεκτήματα Πλεονεκτήματα Προσπέλαση στοιχείου σε σταθερό χρόνο, O(1) Τυχαία προσπέλαση Μειονεκτήματα Σταθερό μέγεθος (εκτός από τους δυναμικούς πίνακες). Δεν μπορούμε να προσθέσουμε στοιχεία στη μέση ενός πίνακα. Αναδιάταξη στοιχείων μόνο με αντιγραφή.

Γραμμικές Λίστες (Linear Lists) Στόχος: Πρόσβαση σε μία συλλογή στοιχείων με τη σειρά (ακολουθιακά). Αποδοτική: αναδιάταξη στοιχείων, διαγραφή, προσθήκη, κ.τ.λ Ορισμός Γραμμικές λίστες (ΓΛ): ακολουθίες της μορφής (x 1, x 2, x 3,, x n ) όπου n είναι πεπερασμένος φυσικός αριθμός.

Γραμμικές Λίστες (Linear Lists) Λειτουργίες: Δημιουργία λίστας. Επιστροφή μήκους λίστας. Ένθεση κόμβου με στοιχείο e πριν/μετά από τον κόμβο m. Διαγραφή κόμβου πριν/μετά από τον κόμβο m. Αναζήτηση κόμβου με στοιχείο e.

Αναπαράσταση Δεδομένων Αναπαράσταση με βάση τον τύπο: χρησιμοποιεί μαθηματικό τύπο. Συνδεδεμένη αναπαράσταση (με δείκτη): δείκτης σε (αυθαίρετη) διεύθυνση της μνήμης. Έμμεση αναπαράσταση: πίνακας σε (αυθαίρετη) διεύθυνση της μνήμης.

Υλοποίηση ΓΛ: Με βάση τον τύπο Με βάση τον τύπο: χρησιμοποιεί μαθηματικό τύπο. Οι κόμβοι είναι στοιχεία ενός πίνακα: π.χ. Location(i) = i

Υλοποίηση ΓΛ: Συνδεδεμένη Αναπαράσταση Ορισμός: Μία συνδεδεμένη λίστα είναι ένα σύνολο στοιχείων όπου κάθε στοιχείο αποτελεί τμήμα ενός κόμβου (node) ο οποίος περιέχει επίσης ένα σύνδεσμο (link) προς κάποιον κόμβο.

Υλοποίηση ΓΛ: Συνδεδεμένη Αναπαράσταση Αντικείμενο (ΑΔΤ) αποθηκεύεται σε κόμβο με πληροφορία, elem, και δείκτη σε επόμενο, next. Μεταβλητή head: δείχνει το πρώτο στοιχείο - κεφαλή λίστας. Απαιτήσεις χώρου: Θ(n) θέσεις για δείκτες (pointers).

Υλοποίηση ΓΛ: Συνδεδεμένη Αναπαράσταση Συνδεδεμένη Αναπαράσταση: βασικές λειτουργίες.

Γραμμικής Λίστας: Ένθεση Χρόνος Θ(1) (με δεδομένη θέση εισαγωγής). Χρόνος Ο(m) για εύρεση m-οστού στοιχείου.

Γραμμικής Λίστας: Διαγραφή Χρόνος Θ(1) (με δεδομένη θέση διαγραφής). Χρόνος Ο(m) για εύρεση m-οστού στοιχείου.

Γραμμικές Λίστες Κυκλική (circular) ΓΛ: χωρίς τερματισμό. Διπλά συνδεδεμένη ΓΛ: περιέχει και σύνδεσμο προς το προηγούμενο στοιχείο της λίστας.

Βιβλιογραφία Δομές Δεδομένων, Αλγόριθμοι και Εφαρμογές στη C++, S. Sahni, Εκδόσεις Τζιόλα, 2004. Δομές Δεδομένων, Π. Μποζάνης, Εκδόσεις Τζιόλα 2006. Δομές Δεδομένων, Έννοιες, Τεχνικές και Αλγόριθμοι, Γ.Φ. Γεωργακόπουλος., Πανεπιστημιακές Εκδόσεις Κρήτης, Ηράκλειο 2002. Αλγόριθμοι σε C, Μέρη 1-4 (Θεμελιώδεις Έννοιες, Δομές Δεδομένων, Ταξινόμηση, Αναζήτηση), Robert Sedgewick, Τρίτη Αμερικάνικη Έκδοση, Εκδόσεις Κλειδάριθμός 2005. Εισαγωγή στους αλγορίθμους Τόμος Ι, T.H. Cormen, C.E. Leiserson, R.L. Rivest, Πανεπιστημιακές Εκδόσεις Κρήτης, Ηράκλειο 2006.