Ιςοηυγιςμζνα δζντρα και Β- δζντρα Δομζσ Δεδομζνων
Περιεχόμενα Ιςοηυγιςμζνα δζντρα Μζκοδοι ιςοηφγιςθσ δζντρων Μονι Περιςτροφι Διπλι Περιςτροφι Β - δζντρα
Ιςοηυγιςμζνα δζντρα Η μορφι ενόσ δυαδικοφ δζντρου εξαρτάται από τθ ςειρά ειςαγωγισ των κλειδιϊν Στισ ακραίεσ περιπτϊςεισ είναι πικανό να προκφψει είτε ζνα πλιρεσ δζντρο είτε ζνα εκφυλιςμζνο δζντρο δθλ. μια γραμμικι λίςτα Ακόμα και εάν ξεκινθςουμε από ζνα πλιρεσ δυαδικό δζντρο μετά από κάποιεσ ειςαγωγζσ ι διαγραφζσ κόμβων μπορεί να προκφψει κάποιο εκφυλιςμζνο δζντρο Γενικά επικυμοφμε ζνα δζντρο που κα είναι όςο το δυνατόν πιο κοντά ςτο πλιρεσ και αυτό γιατί θ αναηιτθςθ είναι πιο γριγορθ
Ιςοηυγιςμζνα δζντρα Συνεπϊσ, μετά από κάκε λειτουργία ειςαγωγισ ι διαγραφισ θ μορφι του δζντρου πρζπει να παραμζνει όςο το δυνατόν πιο κοντά ςτθ μορφι ζνόσ ςχεδόν πλιρεσ δυαδικοφ δζντρου ι με άλλα λόγια να είναι ιςοηυγιςμζνο ι ιςορροπθμζνο Ζνα δζντρο κεωρείται ιςοηυγιςμζνο με βάςθ κάποιο αντικειμενικό κριτιριο Τρείσ περιπτϊςεισ: Κατά φψοσ Κατά βάροσ Ελάττωςθσ εςωτερικοφ μονοπατιοφ
Ιςοηυγιςμζνα δζντρα Τα ιςοηυγιςµζνα δζντρα αναηιτθςθσ (selfbalancing binary search tree) είναι δυαδικά δζντρα αναηιτθςθσ, τα οποία κρατοφν το φψοσ τουσ όςο το δυνατό µικρότερο, µζςω αυτόµατων διαδικαςιϊν αναπροςαρµογισ των κόµβων τουσ. Οι περιςςότερεσ λειτουργίεσ, που εκτελοφνται ςε ζνα δυαδικό δζντρο αναηιτθςθσ, απαιτοφν υπολογιςτικό χρόνο ευκζωσ ανάλογο µε το φψοσ του δζντρου.
Ιςοηυγιςμζνα δζντρα Ενα δζντρο ιςοηυγιςμζνο (AVL) είναι ζνα δυαδικό δζντρο αναηιτθςθσ του οποίου το φψοσ του αριςτεροφ υποδζντρου διαφζρει από αυτό του δεξιοφ το πολφ κατά 1 Το δεξί και αριςτερό υποδζντρο ενόσ δζντρου AVL είναι επίςθσ δζντρα AVL Το κενό δζντρο είναι δζντρο AVL
Ιςοηυγιςμζνα δζντρα
Ιςοηυγιςμζνα δζντρα Η χαρακτθριςτικι ιδιότθτα ενόσ ιςοηυγιςμζνου δζντρου μπορεί να παφει να ιςχφει με τθν προςκικθ νζων ςτοιχείων Η επαναφορά τθσ ιδιότθτασ ςε ιςχφ, γίνεται με περιςτροφή του δζντρου, ανάλογα με τθν περίπτωςθ αναδιάταξθσ που ςυντρζχει
Ιςοηυγιςμζνα δζντρα Ζςτω Χ ο κόμβοσ προσ ιςοηφγιςθ. Κάκε κόμβοσ μπορεί να ζχει το πολφ δφο παιδιά Το δζντρο είναι μθ ιςοηυγιςμζνο, άρα το φψοσ των δφο υποδζντρων του Χ κα διαφζρει κατά 2.
Ιςοηυγιςμζνα δζντρα Παραβίαςθ ιςοηφγιςθσ κα μποροφςε να ςυμβεί ςε μία από τισ παρακάτω περιπτϊςεισ: Ειςαγωγι ςτο αριςτερό υποδζντρο του αριςτεροφ παιδιοφ του Χ (LL) Ειςαγωγι ςτο δεξί υποδζντρο του αριςτεροφ παιδιοφ του Χ (RL) Ειςαγωγι ςτο αριςτερό υποδζντρο του δεξιοφ παιδιοφ του Χ (LR) Ειςαγωγι ςτο δεξί υποδζντρο του δεξιοφ παιδιοφ του Χ (RR)
Ιςοηυγιςμζνα δζντρα Απλι περιςτροφι Η μονι περιςτροφι αλλάηει τουσ ρόλουσ του πατζρα και του παιδιοφ
Παράδειγμα
Ιςοηυγιςμζνα δζντρα Διπλι περιςτροφι Η μονι περιςτροφι δεν αντιμετωπίηει τισ περιπτϊςεισ που θ μθ ιςοηφγιςθ προζρχεται από Ειςαγωγή ςτο δεξί υποδζντρο του αριςτεροφ παιδιοφ Ειςαγωγή ςτο αριςτερό υποδζντρο του δεξιοφ παιδιοφ Οι περιπτϊςεισ αυτζσ απαιτοφν διπλι περιςτροφι
Διπλι περιςτροφι Μια απλι περιςτροφι δεν αντιμετωπίηει το πρόβλθμα
Διπλι περιςτροφι Υποκζτουμε ότι το Q ζχει μία ρίηα και δφο (πικανά μθ κενά) υποδζντρα Το υποδζντρο B ι το C είναι δφο επίπεδα βακφτερο από από το υποδζντρο D Η περιςτροφι μεταξφ του k1 και του k3 δεν δουλεφει Εναλλακτικι?
Παράδειγμα
Β δζντρα Πρόβλθμα με τα Δζντρα αναηιτθςθσ m-δρόμων: μετά από κάποιεσ ειςαγωγζσ και/ι διαγραφζσ είναι δφςκολο να παραμείνουν ιςοηυγιςμζνα Τα B δζντρα είναι μια δομι που επιλφει αυτό το πρόβλθμα Τα Β δζντρα χρθςιμοποιοφνται κυρίωσ για τθ δθμιουργία ευρθτερίων ςτισ βάςεισ δεδομζνων και ςτθ διαχείριςθ αρχείων διαφόρων μζςων αποκικευςθσ, και όχι για τθν κφρια μνιμθ του υπολογιςτι
Β - δζντρα Β δζντρο βακμοφ d είναι ζνα δζντρο με τα εξισ χαρακτθριςτικά: Η ρίηα ζχει το ελάχιςτο 1 κλειδί και το μζγιςτο 2d κλειδιά Κάκε εςωτερικόσ κόμβοσ ζχει το ελάχιςτο d κλειδιά και το μζγιςτο 2d κλειδιά Ζνασ κόμβοσ με κ κλειδιά ζχει κ+1 παιδιά Όλα τα φφλλα βρίςκονται ςτο ίδιο επίπεδο
Β - δζντρα Κάκε κόμβοσ ενόσ Β δζντρου περιζχει κλειδιά (k_i) και δείκτεσ (p_i) p_0 k_0 p_1 k_1. k_m p_m
Αναηιτθςθ κόμβου ςε B δζντρα Για τθν αναηιτθςθ ενόσ κλειδιοφ x εφαρμόηουμε μια αναδρομικι διαδικαςία: 1. Αν k_i x k_(i+1) τότε θ αναηιτθςθ ςυνεχίηεται ςτον κόμβο που δεικτοδοτείται από τον δείκτθ p_i. 2. Αν x<p_0 τότε θ αναηιτθςθ ςυνεχίηεται ςτον κόμβο που δεικτοδοτείται από τον δείκτθ p_0. Ειςαγωγι, Διαγραφι κόμβου?