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

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

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

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

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

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

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

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

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

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

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

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

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

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

AVL-trees C++ implementation

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

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

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

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

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

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

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

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

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

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

Δομές Αναζήτησης. κλειδί από ολικά διατεταγμένο σύνολο. Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου

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

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

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

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

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

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

Δομές Αναζήτησης. κλειδί από ολικά διατεταγμένο σύνολο. Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου

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

Δομές Δεδομένων και Αλγόριθμοι. Λουκάς Γεωργιάδης

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

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

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

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

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

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

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

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

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

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

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

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

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

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

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

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

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

ΕΠΛ 231 Δοµές Δεδοµένων και Αλγόριθµοι 8-1

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

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

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

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

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

Γράφημα. Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα: Σύνολο κορυφών (vertex set) Σύνολο ακμών (edge set) 4 5 πλήθος κορυφών πλήθος ακμών

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

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

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

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

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

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

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

Κατηγορίες Συμπίεσης. Συμπίεση με απώλειες δεδομένων (lossy compression) π.χ. συμπίεση εικόνας και ήχου

ΛΥΣΗ ΤΗΣ ΔΕΥΤΕΡΗΣ ΑΣΚΗΣΗΣ Όλγα Γκουντούνα

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

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

ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ

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

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

Αλγόριθμοι και πολυπλοκότητα Μελανέρυθρα δεντρα

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

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

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

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

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

Συγκρίσιμα Αντικείμενα (comparable)

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας

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

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

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

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

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

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

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

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

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

Ελαφρύτατες διαδρομές

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

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

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες

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

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1

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

Δομές δεδομένων. Ενότητα 8: Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

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

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

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

Transcript:

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

Περιστροφές x αριστερή περιστροφή από το x y α β y γ δεξιά περιστροφή από το y α x β γ Node rotateleft(node x) { Node y = x.right; x.right = y.left; y.left = x; return y; } αριστερή περιστροφή Η περιστροφή παίρνει χρόνο Ο() Node rotateright(node y) { Node x = y.left; y.left = x.right; x.right = y; return x; } δεξιά περιστροφή

Περιστροφές 7 6 9 7 5 7 δεξιά περιστροφή από το 7 9 6 5

Ισορροπημένα Δένδρα Μερικοί τύποι ισορροπημένων δένδρων Τυχαιοποιημένα δένδρα Αρθρωτά δένδρα (splay trees) Δένδρα AVL Κοκκινόμαυρα δένδρα (a,b) δένδρα Όλα τα παραπάνω χρησιμοποιούν περιστροφές για να παραμείνουν ισορροπημένα

(Adelson-Velskii and Landis) Συντελεστής ισορροπίας (balance factor) του κόμβου x: Δένδρο AVL: Διατηρεί τη συνθήκη σε κάθε κόμβο x Δηλαδή τα ύψη των δύο παιδιών του x διαφέρουν το πολύ κατά height= bf=+ 7 8-5 9 http://www.cs.jhu.edu/~goodrich/dsa/trees/avltree.html

Συντελεστής ισορροπίας (balance factor) του κόμβου x: Δένδρο AVL: Διατηρεί τη συνθήκη σε κάθε κόμβο x Δηλαδή τα ύψη των δύο παιδιών του x διαφέρουν το πολύ κατά Από τον παραπάνω ορισμό προκύπτει ότι αν το T είναι AVL δένδρο με ρίζα τον κόμβο x τότε και τα δύο υποδένδρα του Τ με ρίζες τους κόμβους left(x) και right(x) είναι επίσης AVL δένδρα

Συντελεστής ισορροπίας (balance factor) του κόμβου x: Δένδρο AVL: Διατηρεί τη συνθήκη σε κάθε κόμβο x Δηλαδή τα ύψη των δύο παιδιών του x διαφέρουν το πολύ κατά Από τον παραπάνω ορισμό προκύπτει ότι αν το T είναι AVL δένδρο με ρίζα τον κόμβο x τότε και τα δύο υποδένδρα του Τ με ρίζες τους κόμβους left(x) και right(x) είναι επίσης AVL δένδρα ύψος ύψος ύψος

(Adelson-Velskii and Landis) Συντελεστής ισορροπίας (balance factor) του κόμβου x: Δένδρο AVL: Διατηρεί τη συνθήκη σε κάθε κόμβο x Δηλαδή τα ύψη των δύο παιδιών του x διαφέρουν το πολύ κατά Από τον παραπάνω ορισμό προκύπτει ότι αν το T είναι AVL δένδρο με ρίζα τον κόμβο x τότε και τα δύο υποδένδρα του Τ με ρίζες τους κόμβους left(x) και right(x) είναι επίσης AVL δένδρα ή Έστω Τότε ελάχιστος αριθμός κόμβων σε AVL δένδρο με ύψος και

(Adelson-Velskii and Landis) Συντελεστής ισορροπίας (balance factor) του κόμβου x: Δένδρο AVL: Διατηρεί τη συνθήκη σε κάθε κόμβο x Δηλαδή τα ύψη των δύο παιδιών του x διαφέρουν το πολύ κατά Έστω Τότε ελάχιστος αριθμός κόμβων σε AVL δένδρο με ύψος και Ακολουθία Fibonacci και όπου

Συντελεστής ισορροπίας (balance factor) του κόμβου x: Δένδρο AVL: Διατηρεί τη συνθήκη σε κάθε κόμβο x Δηλαδή τα ύψη των δύο παιδιών του x διαφέρουν το πολύ κατά Έστω Τότε ελάχιστος αριθμός κόμβων σε AVL δένδρο με ύψος και Ακολουθία Fibonacci και όπου Ισχύει

Συντελεστής ισορροπίας (balance factor) του κόμβου x: Δένδρο AVL: Διατηρεί τη συνθήκη σε κάθε κόμβο x Δηλαδή τα ύψη των δύο παιδιών του x διαφέρουν το πολύ κατά Έστω Τότε ελάχιστος αριθμός κόμβων σε AVL δένδρο με ύψος και Άρα Επομένως ένα AVL δένδρο με κόμβους έχει ύψος το πολύ

Συντελεστής ισορροπίας (balance factor) του κόμβου x: Δένδρο AVL: Διατηρεί τη συνθήκη σε κάθε κόμβο x Δηλαδή τα ύψη των δύο παιδιών του x διαφέρουν το πολύ κατά height= bf=+ 7 8-5 9 Μετά από μια εισαγωγή ή διαγραφή μπορεί να προκύψει μη ισορροπημένο δένδρο

Εισαγωγή height= bf=+ + 7 8 5 9

Εισαγωγή Παραβιάζεται η συνθήκη ισορροπίας στους κόμβους και height=5 bf=+ + 7-8 5 9 -

Εισαγωγή Παραβιάζεται η συνθήκη ισορροπίας στους κόμβους και height=5 bf=+ + 7-8 5 9 - Εκτελούμε διπλή περιστροφή του 9

Εισαγωγή Παραβιάζεται η συνθήκη ισορροπίας στους κόμβους και height=5 bf=+ + 7 + 9 5 + 8 Εκτελούμε διπλή περιστροφή του 9

Εισαγωγή Αποκαταστάθηκε η συνθήκη ισορροπίας height= bf=+ 9 7 + 8 5

Εισαγωγή height= bf=+ 9 7 + 8 5

Εισαγωγή Παραβιάζεται η συνθήκη ισορροπίας στους κόμβους 8 και height=5 bf=+ + 9 7 + 8 5 +

Εισαγωγή Παραβιάζεται η συνθήκη ισορροπίας στους κόμβους 8 και height=5 bf=+ + 9 7 + 8 5 + Εκτελούμε απλή περιστροφή του

Εισαγωγή Αποκαταστάθηκε η συνθήκη ισορροπίας height= bf=+ 9 7 5 8

Αποκατάσταση ισορροπίας μετά από εισαγωγή Απλές Περιπτώσεις: Δε χρειάζονται περιστροφές -

Αποκατάσταση ισορροπίας μετά από εισαγωγή Απλές Περιπτώσεις: Δε χρειάζονται περιστροφές Παραμένει AVL δένδρο

Αποκατάσταση ισορροπίας μετά από εισαγωγή Απλές Περιπτώσεις: Δε χρειάζονται περιστροφές

Αποκατάσταση ισορροπίας μετά από εισαγωγή Απλές Περιπτώσεις: Δε χρειάζονται περιστροφές + Παραμένει AVL δένδρο

Αποκατάσταση ισορροπίας μετά από εισαγωγή z = χαμηλότερος πρόγονος του νέου κόμβου x που μόλις έχει εισαχθεί για τον οποίο y = παιδί του z στο μονοπάτι εισαγωγής w = παιδί του y στο μονοπάτι εισαγωγής Εισαγωγή 7 height=5 bf=+ + 9 z 7 - y 5 w 8 + 7 x

Αποκατάσταση ισορροπίας μετά από εισαγωγή Περίπτωση LL: y = αριστερό παιδί του z και w = αριστερό παιδί του y +

Αποκατάσταση ισορροπίας μετά από εισαγωγή Περίπτωση LL: y = αριστερό παιδί του z και w = αριστερό παιδί του y + + + + δεξιά περιστροφή

Αποκατάσταση ισορροπίας μετά από εισαγωγή Περίπτωση LL: y = αριστερό παιδί του z και w = αριστερό παιδί του y + + - - δεξιά περιστροφή

Αποκατάσταση ισορροπίας μετά από εισαγωγή Περίπτωση RR: y = δεξί παιδί του z και w = δεξί παιδί του y - - αριστερή περιστροφή + + Συμμετρική της περίπτωσης LL

Αποκατάσταση ισορροπίας μετά από εισαγωγή Περίπτωση LR: y = αριστερό παιδί του z και w = δεξί παιδί του y +

Αποκατάσταση ισορροπίας μετά από εισαγωγή Περίπτωση LR: y = αριστερό παιδί του z και w = δεξί παιδί του y - + +

Αποκατάσταση ισορροπίας μετά από εισαγωγή Περίπτωση LR: y = αριστερό παιδί του z και w = δεξί παιδί του y + - - + : αριστερή περιστροφή + + : δεξιά περιστροφή

Αποκατάσταση ισορροπίας μετά από εισαγωγή Περίπτωση LR: y = αριστερό παιδί του z και w = δεξί παιδί του y + - + - : αριστερή περιστροφή + + + : δεξιά περιστροφή

Αποκατάσταση ισορροπίας μετά από εισαγωγή Περίπτωση RL: y = δεξί παιδί του z και w = αριστερό παιδί του y - + - + : δεξιά περιστροφή - - : αριστερή περιστροφή - Συμμετρική της περίπτωσης LR

Εισαγωγή 7 height=5 bf=+ + 9 z 7 - y 5 w 8 + 7 x Έστω z ο χαμηλότερος πρόγονος του νέου κόμβου x που μόλις έχει εισαχθεί για τον οποίο. Τότε : Πριν την εισαγωγή του x ισχύει Για κάθε πρόγονο v του x στο μονοπάτι από τον y στον x, πριν την εισαγωγή του x ισχύει

Αποκατάσταση ισορροπίας μετά από εισαγωγή Έστω x ο κόμβος που μόλις έχει εισαχθεί και έστω P το μονοπάτι εισαγωγής του x από τη ρίζα Κρίσιμος κόμβος : Ο χαμηλότερος πρόγονος z του x για τον οποίο πριν την εισαγωγή Πριν την εισαγωγή του x ισχύει μικρότερο ύψος από τον z για κάθε κόμβο v στο P με Ο κρίσιμος κόμβος μετά την εισαγωγή έχει ίσο με ή + ή - Μετά την εισαγωγή (και την απλή ή διπλή περιστροφή αν χρειαστεί) το ύψος του κρίσιμου κόμβου δεν αλλάζει Άρα για κάθε κόμβο v στο P με μεγαλύτερο ύψος από τον z το αλλάζει μετά την εισαγωγή (και την απλή ή διπλή περιστροφή αν χρειαστεί) Καταλήγουμε στο συμπέρασμα ότι μια απλή ή μια διπλή περιστροφή αρκεί για να αποκαταστήσει την ισορροπία του δένδρου δεν

Αποκατάσταση ισορροπίας μετά από εισαγωγή Έστω x ο κόμβος που μόλις έχει εισαχθεί και έστω P το μονοπάτι εισαγωγής του x από τη ρίζα Κρίσιμος κόμβος : Ο χαμηλότερος πρόγονος z του x για τον οποίο πριν την εισαγωγή Εάν γίνει περιστροφή, αυτή σχετίζεται με τον κρίσιμο κόμβο z και μπορεί να είναι: Mια απλή περιστροφή μεταξύ του z και του κόμβου-παιδιού του y στο μονοπάτι που ακολουθήθηκε για την εισαγωγή Mια διπλή περιστροφή μεταξύ του κρίσιμου κόμβου z, του κόμβου-παιδιού του y και του κόμβου-εγγονού του w στο μονοπάτι για την εισαγωγή Καθώς ο αλγόριθμος κατεβαίνει προς το ζητούμενο φύλλο, αρκεί να θυμάται μόνο τον τελευταίο κρίσιμο κόμβο z. Μετά την εισαγωγή, ξεκινώντας από τον κρίσιμο κόμβο ακολουθεί και πάλι το ίδιο μονοπάτι προς τον κόμβο x που εισήχθη και διορθώνει τα bf. Tέλος, αν χρειάζεται κάνει τις περιστροφές.

Εισαγωγή κατά σειρά των κλειδιών 9 7 6 5 9 5 9

Εισαγωγή κατά σειρά των κλειδιών 9 7 6 5 9 5 + 9 7

Εισαγωγή κατά σειρά των κλειδιών 9 7 6 5 9 5 7 6 9

Εισαγωγή κατά σειρά των κλειδιών 9 7 6 5 9 5 + 7 + 6 9

Εισαγωγή κατά σειρά των κλειδιών 9 7 6 5 9 5 + 7 9 6

Εισαγωγή κατά σειρά των κλειδιών 9 7 6 5 9 5 6-7 9

Εισαγωγή κατά σειρά των κλειδιών 9 7 6 5 9 5 + 6 - - 7 + 9 5

Εισαγωγή κατά σειρά των κλειδιών 9 7 6 5 9 5 + 6 - - 7 9 5

Εισαγωγή κατά σειρά των κλειδιών 9 7 6 5 9 5 + 6-7 + 9 5 9

Εισαγωγή κατά σειρά των κλειδιών 9 7 6 5 9 5 + 6-7 9 5 9 5

Διαγραφή height= bf=+ + 7 8 5 9

Διαγραφή Αντιγράφουμε στον κόμβο x το κλειδί του διαδόχου x και διαγράφουμε τον x height= bf=+ + 7 8 5 9

Διαγραφή Αντιγράφουμε στον κόμβο x το κλειδί του διαδόχου x και διαγράφουμε τον x height= bf=+ + 7 8 5 9

Διαγραφή Παραβιάζεται η συνθήκη ισορροπίας στον κόμβο height= bf=+ + 7 8 5 9

Διαγραφή Παραβιάζεται η συνθήκη ισορροπίας στον κόμβο height= bf=+ + 7 8 5 9 Εκτελούμε απλή περιστροφή του 8

Διαγραφή Αποκαταστάθηκε η συνθήκη ισορροπίας height= bf=+ - 8 7 + 5 9

Διαγραφή κόμβου x σε δένδρο AVL Αρχικά, εφαρμόζουμε τον αλγόριθμο διαγραφής όπως στο απλό δυαδικό δένδρο αναζήτησης, διαγράφοντας τον κόμβο x όπου: ) x =x αν o x είναι φύλλο ) x =παιδί του x αν o x έχει μόνο ένα παιδί ) x =διάδοχος του x αν ο x έχει παιδιά (Στις περιπτώσεις και αντιγράφουμε τα περιεχόμενα του x στον x πριν τη διαγραφή.) Κατόπιν, ελέγχουμε τις τιμές του bf: το bf του κόμβου-γονέα z του κόμβου x που διαγράφεται αλλάζει.

Διαγραφή κόμβου x σε δένδρο AVL Αν το bf(z) του κόμβου-γονέα z του κόμβου x που διαγράφεται αλλάζει από σε + ή σε, τότε ο αλγόριθμος τερματίζει. από + ή σε, το ύψος του z μειώνεται και άρα και το bf άλλων προγόνων του x ενδεχομένως αλλάζει. από + ή σε + ή, τότε γίνεται μία ή περισσότερες περιστροφές. Στη χειρότερη περίπτωση, μπορεί να χρειαστεί να γίνουν περιστροφές σε όλους τους κόμβους στο μονοπάτι από τον κόμβο z έως τη ρίζα. Το είδος των περιστροφών εξαρτάται από τις δύο πρώτες ακμές του μονοπατιού που καθορίζει το ύψος του εκάστοτε κόμβου με bf = + ή -. Ολόκληρο το μονοπάτι πρέπει να αποθηκευτεί και να ακολουθηθεί από τον κόμβο z προς τη ρίζα μέχρι να βρεθεί κάποιος κόμβος v με bf(v)=. Tο bf(v) γίνεται + ή, αλλά το ύψος του δεν αλλάζει, και από εκεί και μετά, το bf των κόμβων έως τη ρίζα δεν αλλάζει.

Αποκατάσταση ισορροπίας μετά από διαγραφή Έστω z ο χαμηλότερος κόμβος που παραβιάζει τη συνθήκη ισορροπίας. Έστω y το παιδί του z με το μεγαλύτερο ύψος και έστω w το παιδί του y με το μεγαλύτερο ύψος. Σε περίπτωση που ο y έχει δύο παιδία με το ίδιο ύψος επιλέγουμε το παιδί w του y για το οποίο οι σύνδεσμοι (z,y) και (y,w) έχουν την ίδια φορά. Εφαρμόζουμε τις περιπτώσεις LL, RR, LR ή RL ανάλογα με τη θέση των z, y και w, όπως και την εισαγωγή Π.χ. περίπτωση LL: y = αριστερό παιδί του z και w = αριστερό παιδί του y + + + δεξιά περιστροφή

Παράδειγμα που οδηγεί σε πολλαπλές περιστροφές Διαγραφή height=5 bf=- - 8 9 - + - 6-9 7 5-8

Παράδειγμα που οδηγεί σε πολλαπλές περιστροφές Διαγραφή height=5 bf=- - 8 9 - + - 6-9 7 5 - Παραβιάζεται η συνθήκη ισορροπίας στον κόμβο 8 8 Περίπτωση RL: διπλή περιστροφή

Παράδειγμα που οδηγεί σε πολλαπλές περιστροφές Διαγραφή height=5 bf=- - 8 9 - + - 6-9 7 5 - Παραβιάζεται η συνθήκη ισορροπίας στον κόμβο 8 8 Περίπτωση RL: διπλή περιστροφή

Παράδειγμα που οδηγεί σε πολλαπλές περιστροφές Διαγραφή height=5 bf=- - 8 9 - - 9-6 - 7 5 - Παραβιάζεται η συνθήκη ισορροπίας στον κόμβο 8 8 Περίπτωση RL: διπλή περιστροφή

Παράδειγμα που οδηγεί σε πολλαπλές περιστροφές Διαγραφή height=5 bf=- 9 9-8 - 6-7 5 - Παραβιάζεται η συνθήκη ισορροπίας στον κόμβο 8 Περίπτωση RR: απλή περιστροφή

Παράδειγμα που οδηγεί σε πολλαπλές περιστροφές Διαγραφή height=5 bf=- 9 9-8 - 6-7 5 - Παραβιάζεται η συνθήκη ισορροπίας στον κόμβο 8 Περίπτωση RR: απλή περιστροφή

Παράδειγμα που οδηγεί σε πολλαπλές περιστροφές Διαγραφή 9 height= bf= - 9-6 5-8 7 8 Αποκαταστάθηκε η συνθήκη ισορροπίας

Διαγραφή κατά σειρά των κλειδιών 9 7 5 + 6-7 9 5 9 5

Διαγραφή κατά σειρά των κλειδιών 9 7 5 + 6 9-7 - 9 5 5

Διαγραφή κατά σειρά των κλειδιών 9 7 5 + 6 9-7 5 9 5

Διαγραφή κατά σειρά των κλειδιών 9 7 5 9 6 5 5 7

Διαγραφή κατά σειρά των κλειδιών 9 7 5 9 + 5 6 5 7

Διαγραφή κατά σειρά των κλειδιών 9 7 5 9 + 5 6 + 5

Διαγραφή κατά σειρά των κλειδιών 9 7 5-9 5 6 + 5

Διαγραφή κατά σειρά των κλειδιών 9 7 5 5 9 6