Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Lab 6: AVL Trees. 4/15/20152  AVL δέντρο:  Είναι Δυαδικό Δέντρο Αναζήτησης  Τα υποδέντρα ενός οποιουδήποτε κόμβου έχουν ύψος το οποίο διαφέρει το πολύ.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Lab 6: AVL Trees. 4/15/20152  AVL δέντρο:  Είναι Δυαδικό Δέντρο Αναζήτησης  Τα υποδέντρα ενός οποιουδήποτε κόμβου έχουν ύψος το οποίο διαφέρει το πολύ."— Μεταγράφημα παρουσίασης:

1 Lab 6: AVL Trees

2 4/15/20152  AVL δέντρο:  Είναι Δυαδικό Δέντρο Αναζήτησης  Τα υποδέντρα ενός οποιουδήποτε κόμβου έχουν ύψος το οποίο διαφέρει το πολύ κατά ένα  Χρόνοι:  Εισαγωγή  Διαγραφή  Αναζήτηση

3 4/15/

4 4

5 5 Εισαγωγή 72: Εισαγωγή 26: Εισαγωγή 9: ΑΝΙΣΟΖΥΓΙΑ ΠΕΡΙΣΤΡΟΦΗ  Εισαγωγή των στοιχείων {72, 26, 9}

6 4/15/20156  Πριν την εισαγωγή: τα δένδρα R, S, T έχουν το ίδιο ύψος, h.  Μετά την εισαγωγή: έστω ότι ο κόμβος εισάγεται στο δένδρο R με αποτέλεσμα το ύψος του να γίνει h+1.  Η αριστερή περιστροφή υλοποιεί το εξής: A περιστροφή Α Β C R S T h h h h+1 B A C R S T h h

7  Αριστερή περιστροφή του (A,B) σημαίνει 1. Α.left = Β.right 2. Β.right = Α 3. Α.height = C.height+1 4. Β.height = C.height + 2  Πριν την περιστροφή ο Α ήταν ο πατέρας του Β, και μετά, ο Β είναι ο πατέρας του Α.  Το δένδρο παραμένει δυαδικό δένδρο αναζήτησης:  Κάθε τιμή του Υ είναι μικρότερη από την τιμή του u,  η τιμή του u είναι μεγαλύτερη από την τιμή του v.  Μετά την περιστροφή το δένδρο είναι AVL: Α.height = h + 1 = ύψος του R. 4/15/20157

8 ΑΝΙΣΟΖΥΓΙΑ Α-ΠΕΡΙΣΤΡΟΦΗ

9 4/15/20159  Συμμετρική ως προς την αριστερή περιστροφή.  Πριν την εισαγωγή: τα δένδρα R, S, T έχουν το ίδιο ύψος, h.  Μετά την εισαγωγή: έστω ότι ο κόμβος εισάγεται στο δένδρο Τ με αποτέλεσμα το ύψος του Τ να γίνει h+1. Α Β C R S T C A R S T B Δ περιστροφή h h h h+1

10 4/15/  Δεξιά περιστροφή του (A,C) σημαίνει 1. Α.right = C.left 2. C.left = Α 3. Α.height = B.height+1 4. C.height = B.height + 2  Πριν την περιστροφή ο Α ήταν ο πατέρας του C, και μετά, ο C είναι ο πατέρας του Α.  Το δένδρο παραμένει δυαδικό δένδρο αναζήτησης.

11 4/15/  Τα δένδρα Χ και W έχουν ύψος h. Μετά από κάποια εισαγωγή, το w έχει ύψος h+1, προκαλώντας ανισοζυγία στο u. u v w X Y Z W w v u XY ZW AΔ περιστροφή hh hh+1

12 4/15/  Με την εισαγωγή των στοιχείων 72, 26, 9, 2, 21, 25 σε ένα ΑVL-δένδρο, δημιουργείται ανισοζυγία στον κόμβο 26.  Με εφαρμογή ΑΔ περιστροφής έχουμε: ΑΝΙΣΟΖΥΓΙΑ ΑΔ ΠΕΡΙΣΤΡΟΦΗ

13 4/15/  Τα δένδρα Χ και W έχουν ύψος h. Μετά από κάποια εισαγωγή, το w έχει ύψος h+1, προκαλώντας ανισοζυγία στο u. u v w X Y Z W w u v XY ZW ΔΑ περιστροφή h h hh+1

14 4/15/ ΑΝΙΣΟΖΥΓΙΑ ΔΑ ΠΕΡΙΣΤΡΟΦΗ

15 4/15/  ΑΔ περιστροφή του (u,v,w) υλοποιείται ως εξής: 1. v.right = w.left, 2. u.left = w.right, 3. w.left = v, 4. w.right = u, 5. v.height, u.height, w.height = …  ΔΑ περιστροφή του (u,v,w) υλοποιείται ως εξής: 1. v.left = w.right, 2. u.right = w.left, 3. w.left = u, 4. w.right = v, και 5. v.height, u.height, w.height = ….  H περιστροφές δεν παραβιάζουν τη ΔΔΑ συνθήκη.  Το δένδρο που δημιουργείται είναι AVL-δένδρο (οι κόμβοι v και u έχουν ύψος h+1).

16 4/15/  Στην θεωρία είναι εύκολο.  Βλέπουμε τις κατευθύνσεις που ακολουθήσαμε για να εισάξουμε τον κόμβο  Ανάλογα με τις κατευθύνσεις, επιλέγουμε το είδος της περιστροφής.  Τι γίνεται τώρα που πρέπει να γράψουμε κώδικα?

17  Περιστροφή αριστερά:  Κάναμε εισαγωγή αριστερά δύο φορές  Αριστερή Περιστροφή  singleRotationLeft()  Κάναμε εισαγωγή αριστερά και μετά δεξία  ΑΔ περιστροφή  doubleRotationLeftRight()  Περιστροφή δεξιά:  Κάναμε εισαγωγή δεξιά δύο φορές  Δεξιά Περιστροφή  singleRotationRight()  Κάναμε εισαγωγή δεξιά και μετά αριστερά  ΔΑ περιστροφή  doubleRotationRightLeft() 4/15/201517

18  Βρίσκονται στα αρχεία  AVLTree.h  AVLTree.cpp  Συμπληρώστε την:  insertNode()  Υλοποίηστε:  singleRotationLeft()  singleRotationRight()  doubleRotationLeftRight()  doubleRotationRightLeft() 4/15/201518

19


Κατέβασμα ppt "Lab 6: AVL Trees. 4/15/20152  AVL δέντρο:  Είναι Δυαδικό Δέντρο Αναζήτησης  Τα υποδέντρα ενός οποιουδήποτε κόμβου έχουν ύψος το οποίο διαφέρει το πολύ."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google