Εκτενείς Δομές Δεδομένων

Σχετικά έγγραφα
Εκτενείς Δομές Δεδομένων

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Red-black δέντρα (Κεφ. 5)

Red- black δέντρα Εκτενείς Δομές Δεδομένων (Κεφ. 5)

Ισοζυγισμένα υαδικά έντρα Αναζήτησης

Μπαλτάς Αλέξανδρος 21 Απριλίου 2015

Δομές δεδομένων. Ενότητα 5η: Υλοποίηση Λεξικών με Ισοζυγισμένα Δένδρα Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

ΕΝΟΤΗΤΑ 5 ΥΝΑΜΙΚΑ ΛΕΞΙΚΑ ΙΣΟΖΥΓΙΣΜΕΝΑ ΕΝ ΡΑ

AVL-trees C++ implementation

Διάλεξη 13: Δέντρα ΙΙΙ Ισοζυγισμένα Δέντρα, AVL Δέντρα

Διάλεξη 13: Δέντρα ΙΙΙ Ισοζυγισμένα Δέντρα, AVL Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου

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

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

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

h/2. Άρα, n 2 h/2-1 h 2log(n+1). Πως υλοποιούµε τη LookUp()? Πολυπλοκότητα?

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

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

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Διάλεξη 13: Δέντρα ΙΙΙ - Ισοζυγισμένα Δέντρα, AVL Δέντρα

Ισοζυγισµένο έντρο (AVL Tree)

Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε:

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

Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL

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

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

ΗΥ240 - Παναγιώτα Φατούρου 2

Δημιουργία Δυαδικών Δέντρων Αναζήτησης

9. Κόκκινα-Μαύρα Δέντρα

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

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Πελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο

ΟιβασικέςπράξειςπουορίζουντονΑΤΔ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες:

Οι βασικές πράξεις που ορίζουν τον ΑΤ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες:

Μάθημα 22: Δυαδικά δέντρα (Binary Trees)

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης

ΕΝΟΤΗΤΑ 5 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ. ΗΥ240 - Παναγιώτα Φατούρου 1

ΑΣΚΗΣΗ 1 Για τις ερωτήσεις 1-4 θεωρήσατε τον ακόλουθο γράφο. Ποιές από τις παρακάτω προτάσεις αληθεύουν και ποιές όχι;

Διάλεξη 18: B-Δένδρα

Θέματα Υπολογισμού στον Πολιτισμό - Δένδρα. Δένδρα

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

Μη AVL Δέντρα Εισαγωγή κόμβου 4, 6 : 4 12 :

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

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

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

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

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

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

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

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

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

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

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort

αντικειµένων/στοιχείων (π.χ., σύνολα αριθµών, λέξεων, ζευγών

Διάλεξη 14: Δέντρα IV - B-Δένδρα

Στοιχεία Θεωρίας Γραφηµάτων (4) - έντρα

Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης

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

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

Μελετάμε την περίπτωση όπου αποθηκεύουμε ένα (δυναμικό) σύνολο στοιχειών. Ένα στοιχείο γράφεται ως, όπου κάθε.

Δομές Δεδομένων Ενότητα 5

AVL δέντρα. h L h R. G.M. Adelson_Velkii και E.M. Landis 1962

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

Βασικές Προτάσεις. έντρα. υαδικά έντρα Αναζήτησης ( Α) Ισοζυγισµένα έντρα και Υψος. Κάθε δέντρο µε n κόµβους έχει n 1 ακµές.

Δοµές Δεδοµένων. 18η Διάλεξη Ισορροπηµένα δέντρα. Ε. Μαρκάκης

Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΔΕΝΤΡΑ (TREES) B C D E F G H I J K L M

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

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Advanced Data Indexing

Red-Black Δέντρα. Red-Black Δέντρα

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

ΕΝΟΤΗΤΑ 7 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ ΣΩΡΟΙ

οµές εδοµένων 3 ο Εξάµηνο ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

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

Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ουρές Προτεραιότητας Σωροί υλοποίηση και πράξεις Ο αλγόριθμος ταξινόμησης HeapSort

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΠΑΤΡΑ) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Βασικές Ιδιότητες και Διάσχιση Κεφάλαιο 5 ( και ) Ε. Μαρκάκης Επίκουρος Καθηγητής

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

Ουρές προτεραιότητας

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

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

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

Θέματα υπολογισμού στον πολιτισμό

έντρα ιδάσκοντες:. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

13/5/2015 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ. Δομές Δεδομένων. Ουρές Προτεραιότητας

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 3: Δένδρα

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

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

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

έντρα Πολλαπλής ιακλάδωσης και (a, b)- έντρα

Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές

Δένδρα. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:

ιδάσκοντες: Φ. Αφράτη,. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

υαδικά έντρα Αναζήτησης

Δένδρα. Μαθηματικά (συνδυαστικά) αντικείμενα. Έχουν κεντρικό ρόλο στην επιστήμη των υπολογιστών :

Εργαστήριο 5 Αναδρομική διεργασία εισαγωγής καινούριου κόμβου σε ΔΔΑ με αλφαβητική σειρά

Transcript:

Εκτενείς Δομές Δεδομένων

Εισαγωγή Δομές που βασίζονται σε συγκρίσεις : Ισοζυγισμένα δέντρα εύρεσης ( δέντρα τα φύλλα των οποίων απέχουν της ίδιας τάξεως μεγέθους, απόσταση απο τη ρίζα) Υψοζυγισμένα δέντρα ( κριτήριο ζύγισης κάθε κόμβου αποτελεί το ύψος των υποδέντρων του) : VL ( a,b ) TREES B - TREES RED BLK TREE Βαροζυγισμένα δέντρα (κριτήριο ζύγισης κάθε κόμβου αποτελεί το βάρος των υποδέντρων του) : BB[a] TREES SKIP LISTS INTERPOLTION SERH TREES ΒΑΡΟΖΥΓΙΣΜΕΝΑ B - TREES

VL tree (delson-velsk and Landis) Δυαδικό ισοζυγισμένο δέντρο σε κάθε κόμβο τα ύψη των υποδέντρων του διαφέρουν το πολύ κατά ένα. Υψοζύγιση του u: b(u) = ύψος( R(u) ) ύψος( L(u) ), b(u) { +1,, - 1 } Το ύψος ενός δένδρου VL με n στοιχεία είναι Ο( logn ).

F 4 F F 1 F +1 F F 2 F 3

5

Απλή Περιστροφή (1) +2 +2 B +1 +1 Χ Α Β +1

Απλή Περιστροφή (2) -2 +1 Χ Α Β +1 B

Διπλή Περιστροφή (1) +2 +2 z B 1 B 2-2 +1 +2 +2 B 1 +1 B 2-2 z +1 +1 B 1 z B 2-2 +1

Διπλή Περιστροφή (2) +2 +1-2 +1 z B 1 B 2 z -2 B 2 B 1 +2 +1 B 1-2 z B 2-2 -2

VL tree ccess() Ξεκινάμε απο τη ρίζα και ελέγχουμε σε κάθε κόμβο u : αν < val(u) συνεχίζουμε αριστερά αν > val(u) συνεχίζουμε δεξιά ε ως ότου βρούμε το Ο χρόνος της ccess() είναι Θ( logn )

VL tree Insert(, T) Ο πρώτος κόμβος στο μονοπάτι από τον κόμβο v (που εισήχθη στο δένδρο) προς τη ρίζα, του οποίου το balance ήταν +1 ή 1 (πριν την εισαγωγή) ονομάζεται κρίσιμος κόμβος ( κρίσιμο μονοπάτι αντίστοιχα). Αν ο κόμβος αυτός αποκτά balance +2 ή 2 μετά την εισαγωγή, τότε είναι ο πρώτος κόμβος στο μονοπάτι από τον v στη ρίζα για τον οποίο θα πρέπει να γίνουν κατάλληλες ενέργειες ώστε να διορθωθεί το balance του. Διακρίνουμε περιπτώσεις ανάλογα με το είδος των δύο πρώτων ακμών του μονοπατιού από τον κρίσιμο κόμβο w προς τον εισαχθέντα κόμβο v ( απλή περιστροφή / διπλή περιστροφή)

VL tree Insert(, T) Περίπτωση RR (Rigt - Rigt): Και οι δύο ακμές οδηγούν δεξιά. Εκτελούμε μια αριστερή περιστροφή γύρω από τον κρίσιμο κόμβο. Περίπτωση LL (Left - Left): Και οι δύο ακμές οδηγούν αριστερά. Είναι συμμετρική της περίπτωσης RR! Μία δεξιά περιστροφή γύρω από τον κρίσιμο κόμβο αρκεί για να επιλυθεί το πρόβλημα με το balance του!

VL tree Insert(, T) Περίπτωση RL ( Rigt - Left): Η πρώτη ακμή οδηγεί δεξιά και η δεύτερη αριστερά. Απαιτούνται δύο περιστροφές, μια δεξιά περιστροφή γύρω από τον επόμενο του κρίσιμου κόμβου στο μονοπάτι του οδηγεί στον v και μια αριστερή περιστροφή γύρω από τον κρίσιμο κόμβο. Περίπτωση LR ( Left - Rigt): Η πρώτη ακμή οδηγεί αριστερά και η δεύτερη δεξιά. Είναι συμμετρική της περιπτώσεως RL. Απαιτούνται δύο περιστροφές, μια αριστερή περιστροφή γύρω από τον επόμενο του κρίσιμου κόμβου στο μονοπάτι που οδηγεί στον v και μια δεξιά περιστροφή γύρω από τον κρίσιμο κόμβο.

VL tree Delete(, T) κολουθούμε τον αλγόριθμο διαγραφής σε δυαδικό δένδρο: ccess() Διαγραφή του ίδιου του κόμβου αν είναι φύλλο. Αντικατάστασή του από το παιδί του αν έχει μόνο ένα παιδί. Αντικατάστασή του από τον επόμενό του στην ενδοδιατεταγμένη διάταξη αν έχει δύο παιδιά. Balance

+1 ΚΚΕ +2 ΚΚΕ +1 +1

-+1 B Μορφή του υποδένδρου με ρίζα τον ΚΚΕ, πριν την ένθεση

Περίπτωση (i) +2 +2 B +1 +1 Χ Α Β +1

Περίπτωση (ii) +2 +2 z B 1 B 2-2 +1 +2 +2 B 1 +1 B 2-2 z +1 +1 B 1 z B 2-2 +1

Αποσβέσεις ΚΚ ii) iii) / +1 ΚΚ i) ΚΚ +1 +1

Διαγραφή -+1 B Μορφή του υποδένδρου με ρίζα τον ΚΚΕ, πριν την aπόσβεση στο Α

Περίπτωση (i) +2 +2-2 B Χ +1 Α Β -2 +1

Περίπτωση (ii) μη τερματική +2 +1-2 +1 B -2 Χ Α Β -2-2

Περίπτωση (iii) μη τερματική +1 +2-2 +1 z B 1 B 2-3 -2-2 +2 +2 B 1-3 +2 B 2-2 z -2-2 B 1-3 z B 2-2 -2

Περίπτωση (iv) - απορρόφηση B B

(a,b)-tree Έστω a, b ακέραιοι τέτοιοι ώστε a 2 και b 2a. Ένα δέντρο Τ είναι (a, b) αν Όλα τα φύλλα του Τ έχουν το ίδιο βάθος(δηλαδή το δέντρο είναι πλήρως ζυγισμένο) Για κάθε κόμβο u του Τ, ισχύει p(u) b {p(u) = αριθμός των παιδιών του u} Για κάθε κόμβο u του Τ, με εξαίρεση τη ρίζα, ισχύει p(u) a Για τη ρίζα r,ισχύει p(r) 2 Όταν b = 2a 1 τότε το (a,b) tree ονομάζεται B-tree.

Split(v) 1. Διαχωρισμός του v σε δύο τμήματα ένα που περιέχει τα (b+1)/2 αριστερότερα και ένα που περιέχει τα (b+1)/2 δεξιότερα παιδιά 2. Δημιουργία ενός καινούριου κόμβου v αριστερά του v 3. Ta δεξιότερα (b+1)/2 παιδιά τοποθετούνται στον v μαζί με τα κλειδιά k (b+1)/2 +1,,k p(v) 4. Έστω u ο πατέρας του v. Το κλειδί k (b+1)/2 τοποθετείται στον u ανάμεσα στους δείκτες στα υποδέντρα με ρίζες τους κόμβους v και v

Split(v) 4 u 4 9 u v 2 7 9 1 12 v 2 7 1 12 1 3 7 9 1 11 15 1 3 7 9 1 11 15

Sare(v) 4 9 u 4 9 u 4 1 u v 2 7 1 12 v 2 7 1 12 v 2 9 11 1 3 7 9 1 11 15 1 3 9 1 11 15 1 3 9 1 11 15

Fuse(v) 4 1 4 1 u 1 v u 2 9 11 9 v 11 4 9 11 1 3 9 1 11 15 1 9 1 11 15 1 9 1 11 15