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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

AVL-trees C++ implementation

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Άσκηση 1. με κόκκινο χρώμα σημειώνονται οι κρίσιμοι κόμβοι

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

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

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

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

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

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

Μονοπάτια και Κυκλώµατα Euler. Στοιχεία Θεωρίας Γραφηµάτων (3,4) Παραδείγµατα. Κριτήρια Υπαρξης.

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

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

Ουρές Προτεραιότητας: Υπενθύμιση. Σωροί / Αναδρομή / Ταξινόμηση. Υλοποίηση Σωρού. Σωρός (Εισαγωγή) Ορέστης Τελέλης

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

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

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

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

8. Σωροί (Heaps)-Αναδρομή- Προχωρημένη Ταξινόμηση

Ουρά Προτεραιότητας (priority queue)

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

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

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

Κεφάλαιο 8 Ισορροπημένα Δένδρα Αναζήτησης

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

Ουρά Προτεραιότητας (priority queue)

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

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

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

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

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

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

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

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

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

Δοµές Δεδοµένων. 14η Διάλεξη Δέντρα Δυαδικής Αναζήτησης. Ε. Μαρκάκης

Διαχρονικές δομές δεδομένων

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

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

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

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

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

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

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

Ν. Μ. Μισυρλής. Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών. Καθηγητής: Ν. Μ. Μισυρλής 29 Μαΐου / 18

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

σωροί ταξινόμηση σωρού οόροςheap σωρός (heap) συστοιχία Α για έναν σωρό μια δομή δεδομένων που πχ.

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

Δυναμική Διατήρηση Γραμμικής Διάταξης

Αλγόριθµοι και Πολυπλοκότητα

Σύνοψη Προηγούµενου. Γλώσσες χωρίς Συµφραζόµενα (2) Ισοδυναµία CFG και PDA. Σε αυτό το µάθηµα. Αυτόµατα Στοίβας Pushdown Automata

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

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

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

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

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

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

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

ταξινόμηση σωρού Παύλος Εφραιμίδης Δομές Δεδομένων και

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

Ιςοηυγιςμζνα δζντρα και Β- δζντρα. Δομζσ Δεδομζνων

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

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

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

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

Transcript:

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

Ισοζυγισμένα υαδικά έντρα Αναζήτησης Ισοζυγισμένα Α είναι δυαδικά δέντρα αναζήτησης με την εξής ιδιότητα Για κάθε κόμβο το ύψος του δεξιού και αριστερού υποδέντρου είναι περίπου το ίδιο Ισοζυγισμένα Α εξασφαλίζουν γενικά αποδοτικότητα O(logN) σε όλες τις περιπτώσεις Του απλού Α είναι O(N) στη χειρότερη περίπτωση

AVL δέντρα - Ορισμός Ένα δυαδικό δέντρο είναι ένα ισοζυγισμένο κατά ύψος p-δέντρο αν για κάθε κόμβο του δέντρου η διαφορά του ύψους των δύο υποδέντρων του είναι το πολύ p το ίδιο ισχύει για κάθε υποδέντρο του AVL-δέντρο είναι ένα ισοζυγισμένο κατά ύψος 1-δέντρο h L h R <=1, h L, h R τα ύψη του αριστερού και δεξιού υποδέντρου αντίστοιχα

AVL δέντρο Μη AVL δέντρο

AVL δέντρα Η αναζήτηση, διαγραφή, εισαγωγή ενός κόμβου σε ένα AVL-δέντρο με n κόμβους μπορεί να πραγματοποιηθεί σε χρόνο ανάλογο του O(logn) στη χειρότερη περίπτωση. Σε κάθε κόμβο ενός AVL δέντρου αντιστοιχεί ο παράγοντας ισοζύγισης (balance factor), οποίος είναι αριστερά υψηλός, ίσος ή δεξιά υψηλός ανάλογα με το αν το αριστερό υποδέντρο έχει μεγαλύτερο, ίσο ή μικρότερο ύψος από το δεξί υποδέντρο αντίστοιχα.

AVL-δέντρα - : πλήρως ισοζυγισμένο δέντρο / : το αριστερό υποδέντρο είναι κατά 1 υψηλότερο \ :το δεξί υποδέντρο είναι κατά 1 υψηλότερο

Μη AVL-δέντρα // : το αριστερό υποδέντρο είναι κατά 2 υψηλότερο \\ :το δεξί υποδέντρο είναι κατά 2 υψηλότερο

Εισαγωγή AVL δέντρου Η εισαγωγή σ ένα AVL δέντρο μπορεί να οδηγήσει στο γίνει ένα μη ισοζυγισμένο δέντρο Πρέπει συνεπώς να ισοζυγιστεί πριν ολοκληρωθεί η λειτουργία της εισαγωγής Μόνο η ισοζύγιση των κόμβων στο μονοπάτι από τη ρίζα προς το σημείο εισαγωγής μπορεί να μεταβληθεί

Ισοζύγιση AVL δέντρου Έστω Χ ο κόμβος προς ισοζύγιση Κάθε κόμβος μπορεί να έχει το πολύ δύο παιδιά Το δέντρο είναι μη ισοζυγισμένο, άρα το ύψος των δύο υποδέντρων του Χ θα διαφέρει κατά 2

Ισοζύγιση AVL δέντρου (συνέχεια...) Παραβίαση ισοζύγισης θα μπορούσε να συμβεί σε μία από τις παρακάτω περιπτώσεις: Εισαγωγή στο αριστερό υποδέντρο του αριστερού παιδιού του Χ (LL) Εισαγωγή στο δεξί υποδέντρο του αριστερού παιδιού του Χ (RL) Εισαγωγή στο αριστερό υποδέντρο του δεξιού παιδιού του Χ (LR) Εισαγωγή στο δεξί υποδέντρο του δεξιού παιδιού του Χ (RR)

Μονή περιστροφή (Ι) Στην περίπτωση εισαγωγής εξωτερικά Αριστερό υποδέντρο αριστερό παιδί εξί υποδέντρο δεξί παιδί η ισορροπία αποκαθίσταται με απλή (μονή) περιστροφή του δέντρου Η μονή περιστροφή αλλάζει τους ρόλους του πατέρα και του παιδιού ενώ διατηρεί τη σειρά αναζήτησης

Μονή περιστροφή (ΙΙ) static BinaryNode rotatewithleftchild(binarynode k2) { BinaryNode k1 = k2.leftchild; k2.leftchild = k1.rightchild; k1.rightchild = k2; return k1; }

Απλή περιστροφή ενός AVL δέντρου μετά την εισαγωγή του 1

Περιστροφή για αποκατάσταση του AVL δέντρου μετά από εισαγωγή σε δεξί παιδί, δεξιού υποδέντρου static BinaryNode rotatewithrightchild(binarynode k1) { BinaryNode k2 = k1.rightchild; k1.rightchild = k2.leftchild; k2.leftchild = k1; return k2; }

ιπλή περιστροφή Η μονή περιστροφή δεν αντιμετωπίζει τις περιπτώσεις που η μη ισοζύγιση προέρχεται από Εισαγωγή στο δεξί υποδέντρο του αριστερού παιδιού Εισαγωγή στο αριστερό υποδέντρο του δεξιού παιδιού Οι περιπτώσεις αυτές απαιτούν διπλή περιστροφή

Εισαγωγή στο δεξί υποδέντρο του αριστερού παιδιού Το υποδέντρο Q είναι πολύ βαθύ και μία απλή περιστροφή δεν μπορεί να το κάνει λιγότερο βαθύ Το Q δεν είναι κενό καθώς έχει εισαχθεί σε αυτό τουλάχιστον ένας κόμβος

Εισαγωγή στο δεξί υποδέντρο του αριστερού παιδιού Μπορούμε να το δούμε το δέντρο σαν τέσσερα υποδέντρα συνδεδεμένα με τρεις κόμβους Το υποδέντρο B ή το C είναι δύο επίπεδα βαθύτερο από από το υποδέντρο D Η περιστροφή μεταξύ του k1 και του k3 δεν δουλεύει Η μόνη εναλλακτική είναι να τοποθετήσουμε το k2 σαν νέο κόμβο

Εισαγωγή στο δεξί υποδέντρο του αριστερού παιδιού

Περιστροφή αριστερό παιδί με το δεξί παιδί του k3 με το νέο αριστερό παιδί static BinaryNode doublerotatewithleftchild(binarynode k3) { k3.left = rotatewithrightchild(k3.left); return rotatewithleftchild(k3); }

Εισαγωγή στο αριστερό υποδέντρο του δεξιού παιδιού Περιστροφή δεξί παιδί με το αριστερό παιδί του k1 με το νέο δεξί παιδί static BinaryNode doublerotatewithrightchild( BinaryNode k1) { k1.right = rotatewithleftchild(k1.right); return rotatewithrightchild(k1); }

ιπλή περιστροφή == δύο απλές περιστροφές X ο κόμβος που τα δύο υποδέντρα του διαφέρουν κατά 2 επίπεδα Περιστροφή μεταξύ του παιδιού του Χ και του απογόνου του Περιστροφή μεταξύ του Χ και του νέου παιδιού X k1 k1 k2 k3 k2 k1 k3 Α k2 Α k3 D B Α B C D Β C C D

Παράδειγμα(I)

Παράδειγμα (ΙΙ)

Παράδειγμα (ΙΙΙ)

Παράδειγμα (ΙV)

Παράδειγμα (V)

Σύνοψη Πράξεων Περιστροφής Εισάγουμε κόμβο με κλειδί q Ακολουθούμε το μονοπάτι από το σημείο εισαγωγής προς τη ρίζα Βρίσκουμε τον πρώτο κόμβο που παραβιάζει τη συνθήκη AVL, με κλειδί k Έστω τα κλειδιά των παιδιών του «προβληματικού» κόμβου με κλειδί k kl το κλειδί του αριστερού παιδιού kr το κλειδί του δεξιού παιδιού

Σύνοψη Πράξεων Περιστροφής Αν q < kl, k τότε χρειάζεται περιστροφή L Εισαγωγή σε αριστερό υποδέντρο αριστερού παιδιού του k Αν q > kr, k τότε χρειάζεται περιστροφή R Εισαγωγή σε δεξιό υποδέντρο δεξιού παιδιού του k Αν kl < q < k τότε χρειάζεται περιστροφή LR Εισαγωγή σε δεξιό υποδέντρο αριστερού παιδιού του k Αν k < q < kr τότε χρειάζεται περιστροφή RL Εισαγωγή σε αριστερό υποδέντρο δεξιού παιδιού του k

Άσκηση Υλικό από τις διαφάνειες του Ορέστη Τελέλη

Λύση (1/8) Υλικό από τις διαφάνειες του Ορέστη Τελέλη

Λύση (2/8) Υλικό από τις διαφάνειες του Ορέστη Τελέλη

Λύση (3/8) Υλικό από τις διαφάνειες του Ορέστη Τελέλη

Λύση (4/8) Υλικό από τις διαφάνειες του Ορέστη Τελέλη

Λύση (5/8) Υλικό από τις διαφάνειες του Ορέστη Τελέλη

Λύση (6/8) Υλικό από τις διαφάνειες του Ορέστη Τελέλη

Λύση (7/8) Υλικό από τις διαφάνειες του Ορέστη Τελέλη

Λύση (8/8) Υλικό από τις διαφάνειες του Ορέστη Τελέλη

Απόδειξη: Τα Α AVL έχουν ύψος O(logn) Υλικό από τις διαφάνειες του Ορέστη Τελέλη

Ταξινόμηση AVL Υλικό από τις διαφάνειες του Ορέστη Τελέλη

Ταξινόμηση AVL Υλικό από τις διαφάνειες του Ορέστη Τελέλη