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



Σχετικά έγγραφα
RB Δένδρα. Ερυθρόμαυρα (Red Black) Δέντρα

ΑΝΑΛΥΣΗ 2. Μ. Παπαδημητράκης.

Βασικά σημεία διάλεξης

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 3 ο

Η ΑΥΤΕΠΑΓΓΕΛΤΗ ΑΝΑΖΗΤΗΣΗ ΔΙΚΑΙΟΛΟΓΗΤΙΚΩΝ ΜΙΑ ΚΡΙΤΙΚΗ ΑΠΟΤΙΜΗΣΗ. ( Διοικητική Ενημέρωση, τ.51, Οκτώβριος Νοέμβριος Δεκέμβριος 2009)

Πρακτικό 6/2012 της συνεδρίασης της Επιτροπής Ποιότητας Ζωής, του Δήμου Λήμνου, της 4ης Μαΐου 2012.

Σε ποιες κατηγορίες μειώνεται η σύνταξη από 1/1/2009 (σε εφαρμογή του Ν.3655/2008)

Χρηματοδότηση των Συλλόγων στην εποχή της κρίσης

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΑΡΙΘΜΟΣ ΜΕΛΕΤΗΣ: 58/ 2014 ΝΟΜΟΣ ΘΕΣΠΡΩΤΙΑΣ ΔΗΜΟΣ ΗΓΟΥΜΕΝΙΤΣΑΣ Δ/ΝΣΗ ΤΕΧΝΙΚΩΝ ΥΠΗΡΕΣΙΩΝ ΜΕΛΕΤΗ

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

Σηµειώσεις στο ταξινοµούµε

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΕΣΩΤΕΡΙΚΩΝ ΑΝΑΠΛΗΡΩΤΗΣ ΥΠΟΥΡΓΟΣ Προς: Δημάρχους της Χώρας Αθήνα, 16 Δεκεμβρίου 2013 Α.Π.:2271. Αγαπητέ κ.

Κεφάλαιο Πέμπτο Εθνοπολιτισμική Ζωή και Εμπειρίες Ελληνικότητας των Ελληνοαυστραλών Εφήβων

ΟΡΓΑΝΩΣΗ ΕΝΟΤΗΤΩΝ Α ΤΑΞΗΣ ΕΝΟΤΗΤΑ 3

Το ολοκαύτωμα της Κάσου

Εσωτερικοί Κανονισμοί Τοπικής Αυτοδιοίκησης

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

Το συνέδριο σας πραγματοποιείται σε μια εξαιρετικά δύσκολη συγκυρία για τον τόπο, την οικονομία της χώρας, την κοινωνία και τον κόσμο της εργασίας.

ΣΥΝΤΟΝΙΣΤΕΣ ΟΜΑΔΑΣ PROJECT ΑΝΘΡΩΠΙΣΤΙΚΕΣ ΕΠΙΣΤΗΜΕΣ: ΟΜΑΔΑ PROJECT ΑΝΘΡΩΠΙΣΤΙΚΕΣ ΕΠΙΣΤΗΜΕΣ:

Ο αναλφαβητισμός ως σύγχρονο πρόβλημα

ΙΕΘΝΗΣ ΣΥΜΒΑΣΗ ΕΡΓΑΣΙΑΣ 183 «για την αναθεώρηση της (αναθεωρηµένης) σύµβασης για την προστασία της µητρότητας,»

«ΑΝΩ ΛΙΟΣΙΑ: ΤΟΠΙΚΗ ΙΣΤΟΡΙΑ, ΠΕΡΙΒΑΛΛΟΝ, ΠΡΟΚΛΗΣΕΙΣ, ΠΡΟΟΠΤΙΚΕΣ»

Διαδικασίες υποβολής προτάσεων Προϋποθέσεις για την ένταξη έργων στο ΕΠ Κρήτη

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

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών

Ηλεκτρικό φορτίο Ηλεκτρική δύναμη

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

Μη ανταγωνιστικές δραστηριότητες και παιχνίδια (υλικό)

ΑΡΧΑΙΑ ΕΛΛΗΝΙΚΑ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Γ ΛΥΚΕΙΟΥ 20 ΜΑΪΟΥ 2011 ΑΠΑΝΤΗΣΕΙΣ. Διδαγμένο κείμενο

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

Πρακτικό εργαλείο. για την ταυτοποίηση πρώτου επιπέδου των θυμάτων παράνομης διακίνησης και εμπορίας. τη σεξουαλική εκμετάλλευση

11. Προϋπολογισμός Προϋπολογισμός και αποδοτικότητα δημοσίων υπηρεσιών: υφιστάμενη κατάσταση

Υποψήφιοι Σχολικοί Σύμβουλοι

Πρώτη διδακτική πρόταση Χρωματίζοντας ένα σκίτσο

3o ΓΕΝΙΚΟ ΛΥΚΕΙΟ ΗΡΑΚΛΕΙΟΥ σχολ. Έτος

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

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

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

Συνοπτική Παρουσίαση. Ελλάδα

Η Αγορά Ηλεκτρικής Ενέργειας στην Κύπρο έχει οργανωθεί σε τομείς που υπόκεινται στις ακόλουθες ρυθμίσεις:

Α. ΟΡΓΑΝΑ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΕΦΑΡΜΟΓΗΣ

ΓΕΝΙΚΟΙ ΟΡΟΙ ΣΥΜΒΑΣΗΣ ΜΕΤΑΦΟΡΑΣ

ΔΕΛΤΙΟ ΤΥΠΟΥ. Ελλείψεις στο φορολογικό νομοσχέδιο. Σοβαρές ελλείψεις στη νέα μορφή του φορολογικού νομοσχεδίου

Πρόγραμμα Σπουδών για το "Νέο Σχολείο"

«Ειρήνη» Σημειώσεις για εκπαιδευτικούς

5 η Ενότητα Κουλτούρα και στρατηγική

ΤΑΞΗ: ΣΤ Δημοτικού ΠΙΘΑΝΟΤΗΤΕΣ

Ανακοίνωση σχετικά με τα επαγγέλματα που επηρεάζονται από την άρση των αδικαιολόγητων περιορισμών στην πρόσβαση και άσκηση:

Εγκύκλιος Υπουργού Υγείας και Κοινωνικής Αλληλεγγύης Μαριλίζας Ξενογιαννακοπούλου προς όλες τις μονάδες υγείας του ΕΣΥ

Σκοπός του παιχνιδιού. Περιεχόμενα

Συνήγορος του Καταναλωτή Νομολογία ΕφΑθ 5253/2003

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

Συνωμοσία Πυρήνων της Φωτιάς - Πυρήνας Αντάρτικου Πόλης

Σύνταγμα, Εργασία και Συναφή Δικαιώματα ( Συνδικαλιστική Ελευθερία, Απεργία )

ΑΣΦΑΛΙΣΗ ΑΥΤΟΚΙΝΗΤΟΥ

ΠΕΤΡΟΓΕΝΕΤΙΚΑ ΟΡΥΚΤΑ ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΕΞΕΤΑΣΕΙΣ

ΑΝΑΚΟΙΝΩΣΗ ΥΠ ΑΡΙΘΜ. ΣΟΧ 3/2015. Για την πρόσληψη Πτυχιούχων Φυσικής Αγωγής. με σύμβαση εργασίας Ιδιωτικού Δικαίου Ορισμένου Χρόνου (Ι.Δ.Ο.Χ.

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΑΛΑΜΑΤΑΣ (Τ.Ε.Ι.Κ.) ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΑΣ ΓΕΩΠΟΝΙΑΣ (ΣΤΕΓ) ΤΜΗΜΑ ΦΥΤΙΚΗΣ ΠΑΡΑΓΩΓΗΣ (Φ.Π.) ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΕ ΘΕΜΑ:

Εργασία στο μάθημα: Διδακτική των Μαθηματικών

Τρίτη, 2 Σεπτεμβρίου 2014 Αριθ. Τεύχους: 200 Περιεχόμενα

Η συμβολή του Πλάτωνα στα Μαθηματικά

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

Τίτλος Ειδικού Θεματικού Προγράμματος: «Διοίκηση, Οργάνωση και Πληροφορική για Μικρο-μεσαίες Επιχειρήσεις»

Ευρετήριο πινάκων. Ασκήσεις και υπομνήματα

στον κόσμο Τομείς παραγωγής - Οικονομικοί δείχτες Ι. Πρωτογενής τομέας: ΙΙ. Δευτερογενής τομέας:

Κατηγορία: Είσπραξη δημοσίων Εσόδων

Ε.Ε. Π α ρ.ι(i), Α ρ.3638, 27/9/2002

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

ΕΙΣΗΓΗΣΗ. επί της 5ης Αναμόρφωσης του προϋπολογισμού της Περιφέρειας Ιονίων Νήσων, για το οικονομικό έτος 2014

Ο «ΕΚΑΛΟΓΟΣ» ΤΟΥ ΚΑΛΟΥ ΥΠΟΨΗΦΙΟΥ

Κωδ : Οι κωδικοί αυτοί συμπληρώνονται από την φορολογική διοίκηση. Κωδ. 003: Γράψτε τη Δ.Ο.Υ. της έδρας ή του κεντρικού της επιχείρησής σας.

ΕΚΦΡΑΣΗ-ΕΚΘΕΣΗ Β ΛΥΚΕΙΟΥ 1 ο Λύκειο Καισαριανής ΕΠΑΓΓΕΛΜΑ: Κείμενα Προβληματισμού

ΤΟ ΝΕΟ ΑΣΦΑΛΙΣΤΙΚΟ ΤΟΠΙΟ

ΚΟΡΙΝΘΟΥ 255, ΚΑΝΑΚΑΡΗ 101 ΤΗΛ , , FAX

Πολιτική Χωρίς Πολιτικούς

289 ον Σύστημα Αεροπροσκόπων Αγίας Φύλας ΟΜΑΔΑ ΠΡΟΣΚΟΠΩΝ ΕΓΧΕΙΡΙΔΙΟ ΧΑΛΚΙΝΟΥ ΤΡΙΦΥΛΛΟΥ

Όμιλος Λογοτεχνίας. Δράκογλου Αναστασία, Κιννά Πασχαλίνα

Οι 99 θέσεις του Ποταμιού

ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΗ ΛΟΓΙΣΤΙΚΗ

ΔΙΑΔΟΣΗ ΘΕΡΜΟΤΗΤΑΣ Φυσική Β' Γυμνασίου. Επιμέλεια: Ιωάννης Γιαμνιαδάκης

ΠΟΛΙΤΙΚΉ ΠΑΙΔΕΙΑ. Α Γενικού Λυκείου και ΕΠΑ.Λ. Καζάκου Γεωργία, ΠΕ09 Οικονομολόγος

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

ΚΩΔΙΚΑΣ ΔΕΟΝΤΟΛΟΓΙΑΣ

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

Ο κόσμος των επιχειρήσεων, τησ οικονομιασ και των αγορών: επιχειρηματικές δραστηριότητες, επιχειρηματικοί κίνδυνοι και επιχειρηματικές πρακτικές

Ατομικό ιστορικό νηπίου

ΑΝΑΚΟΙΝΩΣΗ ΠΡΟΣΛΗΨΗΣ για τη σύναψη ΣΥΜΒΑΣΗΣ ΕΡΓΑΣΙΑΣ ΟΡΙΣΜΕΝΟΥ ΧΡΟΝΟΥ

ΝΕΑ ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΑ ΠΡΟΪΟΝΤΑ- ΕΦΑΡΜΟΓΗ ΣΕ ΑΣΦΑΛΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΗ

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

Α. ΑΙΤΙΟΛΟΓΙΚΗ ΕΚΘΕΣΗ. Επί του άρθρου 1 της τροπολογίας

ΠΡΟΒΛΗΜΑΤΑ ΤΗΣ ΔΗΜΟΣΙΑΣ ΖΩΗΣ, ΜΙΑ ΨΥΧΑΝΑΛΥΤΙΚΗ ΠΡΟΣΕΓΓΙΣΗ

Οι ιοί και οι ιογενείς λοιμώξεις του αναπνευστικού συστήματος στα παιδιά

Σχετ: Το από έγγραφό σας (αρ. πρωτ. εισερχ. 932/ ). Σε απάντηση του ως άνω σχετικού, θα θέλαμε να παρατηρήσουμε τα εξής:

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΗΛΕΚΤΡΟΝΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ ΑΙΤΗΣΕΩΝ ΜΕΤΑΤΑΞΕΩΝ ΕΚΠΑΙΔΕΥΤΙΚΩΝ. ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Υπουργείο Παιδείας και Θρησκευμάτων

Σημειώσεις Κληρονομικού Δικαίου

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

«Φιλολογικό» Φροντιστήριο Επαναληπτικό διαγώνισμα στη Νεοελληνική Γλώσσα. Ενδεικτικές απαντήσεις. Περιθωριοποίηση μαθητών από μαθητές!

Kεντρικός συντονισμός πολιτικών, μόνιμοι υφυπουργοί, μείωση ειδικών συμβούλων, κατάργηση αναπληρωτών.

Αυτός που δεν μπορεί να δει τα μικρά πράγματα είναι τυφλός και για τα μεγαλύτερα. (Κομφούκιος, πχ)

Transcript:

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 13: Δέντρα ΙΙΙ - Ισοζυγισμένα Δέντρα, AVL Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ισοζυγισμένα Δέντρα - Υλοποίηση AVL-δέντρων - Εισαγωγή Κόμβων και Περιστροφές σε AVL δέντρα

Εισαγωγή Στην προηγούμενη διάλεξη μιλήσαμε για Δυαδικά Δένδρα Αναζήτησης (ΔΔΑ). ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 2 Αυτά έχουν ύψος ίσο με log 2 n (στην καλύτερη περίπτωση) και n-1 στην χειρότερη περίπτωση. Άρα για να βρούμε αν υπάρχει ένα στοιχείο στο δένδρο (δηλαδή για να κάνουμε μια αναζήτηση) χρειαζόμαστε να περάσουμε από log 2 n (καλύτερη περίπτωση) ή n στοιχεία (χειρότερη περίπτωση).

Ιδέα Λύσης Βασικά θέλουμε να περιορίσουμε το ύψος του δένδρου όσο το δυνατό περισσότερο. Αυτό μπορεί να γίνει με: 1. Σωστή αξιοποίηση όλων των παιδιών. ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 3 Θέλουμε να αποφύγουμε αυτό το δένδρο Το τέλειο δένδρο είναι η ιδανική περίπτωση! 2. Να αυξήσουμε τον αριθμό των παιδιών σε κάθε κόμβο χωρίς να αυξηθεί πάρα πολύ. Γιατί; Διότι θα καταλήξουμε σε ένα πίνακα στο τέλος οπότε η αναζήτηση κάποιου στοιχείου θα πάρει O(n) χρόνο

Ισοζυγισμένα Δένδρα Ένα τέλειο δένδρο προϋποθέτει ότι υπάρχει ο κατάλληλος αριθμός κόμβων. π.χ. ένα τέλειο δυαδικό δένδρο πρέπει να έχει 1 ή 2 ή 4 ή 8. κόμβους Για αυτό περιοριζόμαστε στο να κρατάμε το δένδρο ισοζυγισμένο αντί τέλειο. Ισοζυγισμένο Δένδρο (Balanced Tree) Ένα δένδρο στο οποίο όλα τα φύλλα έχουν το ίδιο βάθος. Μη-γεμάτο, Ισοζυγισμένο Γεμάτο, Μη- Ισοζυγισμένο Γεμάτο, Ισοζυγισμένο, Τέλειο ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5 AVL Δένδρα Είναι δυνατό να οργανώσουμε ένα δυαδικό δένδρο αναζήτησης έτσι ώστε το ύψος του να είναι το μικρότερο δυνατό; (τάξεως Ο(lοg 2 n)) Iδέα: για να έχουμε μικρό ύψος, αν u είναι ένας κόμβος του δένδρου τότε και τα δύο του υπόδενδρα έχουν περίπου τον ίδιο αριθμό κόμβων. 1. Πρώτη προσπάθεια: για κάθε κόμβο και τα δυο του υπόδενδρα έχουν το ίδιο ύψος τέλεια δένδρα δένδρα με αριθμό κόμβων 2h+1-1.

AVL Δένδρα 2. Δεύτερη προσπάθεια: Ένα δυαδικό δένδρο είναι AVL-δένδρο (Adelson-Velskii and Landis) αν για κάθε κόμβο του u τα ύψη των παιδιών του u διαφέρουν το πολύ κατά 1. (υποθέτουμε το ύψος του κενού δένδρου= 1) Θα δούμε ότι: το ύψος ενός AVL-δένδρου με n κόμβους είναι O(log n) διαδικασίες εισαγωγής και εξαγωγής κόμβων μπορούν να διατυπωθούν έτσι ώστε η AVL-συνθήκη να διατηρείται. Ένα πλήρες δένδρο είναι και AVL-δένδρο. ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 6

Παραδείγματα AVL δένδρων... ή όχι; ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 7

Το ύψος ενός AVL-δένδρου Έστω ότι Ν(h) είναι ο ελάχιστος αριθμός κόμβων ενός AVLδένδρου ύψους h. Έχουμε: N(0) = 1, N(1) = 2. Για h 2, ένα AVL-δένδρο πρέπει: να έχει μια ρίζα, ένα από τα δύο του υπόδενδρα να έχει ύψος h-1, τα ύψη των δύο υποδένδρων να διαφέρουν, το πολύ κατά 1. Άρα, Ν(h) = N(h-1) + N(h-2) + 1 Η αναδρομική σχέση θυμίζει Fibonacci. Όπως αυτή, η Ν μεγαλώνει εκθετικά, δηλ. N(h) Θ(ch). Eπομένως: Θεώρημα: Το ύψος ενός AVL-δένδρου με n κόμβους είναι της τάξης Ο(log n) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 8

Ένα μικρότερο AVL-δένδρο ύψους 5 ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 9

Υλοποίηση AVL δέντρων Η παράσταση ενός κόμβου AVL-δένδρου είναι παρόμοια με αυτή ενός κόμβου ΔΔA, με την προσθήκη ενός επιπλέον πεδίου, που καταγράφει το ύψος του δένδρου που ριζώνει στον συγκεκριμένο κόμβο. Δηλαδή, ένας κόμβος μπορεί να υλοποιηθεί ως μια εγγραφή AVLNode με τέσσερα πεδία. key: το κλειδί κόμβου height (int): το ύψος του κόμβου left (pointer): δείχνει το αριστερό υπόδενδρο που ριζώνει στον συγκεκριμένο κόμβο right (pointer): δείχνει το δεξί υπόδενδρο που ριζώνει στον συγκεκριμένο κόμβο Το πεδίο height χρησιμοποιείται για τη διακρίβωση ανισοζυγίας (με σύγκριση των ανάλογων πεδίων των παιδιών κάθε κόμβου). ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 10

Εισαγωγή κόμβου 1. H εισαγωγή κόμβου γίνεται όπως ακριβώς και σε ένα δυαδικό δένδρο αναζήτησης, με τη διαφορά ότι καταγράφουμε τη διαδρομή που ακολουθείται (από τη ρίζα προς τα φύλλα). 2. Στη συνέχεια, ακολουθούμε τη διαδρομή προς τα πίσω και δίνουμε στα πεδία height των κόμβων τις νέες τους τιμές. 3. Αν αυτό προκαλέσει κάποια ανισοζυγία, δηλαδή, αν έχει σαν αποτέλεσμα κάποιος κόμβος να έχει παιδιά που το ύψος τους διαφέρει κατά τιμή >1, τότε αναπροσαρμόζουμε τα υποδένδρα ώστε το δένδρο να γίνει ξανά AVL. Οι αναπροσαρμογές ονομάζονται περιστροφές (rotations) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 11

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 12 Παράδειγμα Εισαγωγή 72,26,9 στο κενό AVL δένδρο με αυτή τη σειρά: NULL 72 72 26 72 9 72 26 26 height(left) =2 9 26 height(right) =0 height(left)-height(right)>1 9 72

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 13 Αριστερή Περιστροφή Πριν την εισαγωγή: τα δένδρα R,S,T έχουν το ίδιο ύψος, h. Μετά την εισαγωγή: έστω ότι ο κόμβος εισάγεται στο δένδρο R με αποτέλεσμα το ύψος του να γίνει h+1. Η αριστερή περιστροφή υλοποιεί το εξής: h+1 h+2 B h+2 h+3 h+1 A h+1 C h h+2 B h+2 h+1 A h+1 C h h+1 R h S T h+1 R h S T h

Διαδικασία Α-περιστροφής Αριστερή περιστροφή του (A,B) σημαίνει 1. Α.left = Β.right 2. Β.right = Α 3. Α.height = C.height + 1 4. Β.height = C.height + 2 Πριν την περιστροφή ο Α ήταν ο πατέρας του Β, και μετά, ο Β είναι ο πατέρας του Α. Το δένδρο παραμένει δυαδικό δένδρο αναζήτησης. Μετά την περιστροφή το δένδρο είναι AVL: Α.height = h + 1 = ύψος του R. ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 14

Παράδειγμα Α-περιστροφής ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 15 50 42 72 Ανισοζυγία 5 46 61 99 43 58 65 50 51 42 61 5 46 58 72 43 51 65 99

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 16 Δεξιά Περιστροφή Συμμετρική προς την αριστερή περιστροφή Πριν την εισαγωγή: τα δένδρα R,S,T έχουν το ίδιο ύψος, h. Μετά την εισαγωγή: έστω ότι ο κόμβος εισάγεται στο δένδρο Τ με αποτέλεσμα το ύψος του να γίνει h+1. Η δεξιά περιστροφή υλοποιεί το εξής: A B C B A C R S T R S T

Διαδικασία Δ-περιστροφής Δεξιά περιστροφή του (A,B) σημαίνει 1. Α.right= C.left 2. C.left = Α 3. Α.height = B.height + 1 4. C.height = B.height + 2 Πριν την περιστροφή ο Α ήταν ο πατέρας του C, και μετά, ο C είναι ο πατέρας του Α. Το δένδρο παραμένει δυαδικό δένδρο αναζήτησης. Μετά την περιστροφή το δένδρο είναι AVL: C.height = h + 1 = ύψος του T. ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 17

ΑΔ-Περιστροφή ΕΠΛ 231 Δομές Δεδομένων και Αλγόριθμοι 7-19 Τα δένδρα Χ και W έχουν ύψος h. Μετά από κάποια εισαγωγή, το w έχει ύψος h+1, προκαλώντας ανισοζυγία στο u. h X v Y u w h Z W AΔ περιστροφή h+1 v w h+1 X Y Z W u h+1

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

ΔA-Περιστροφή ΕΠΛ 231 Δομές Δεδομένων και Αλγόριθμοι 7-22 Τα δένδρα Χ και W έχουν ύψος h. Μετά από κάποια εισαγωγή, το w έχει ύψος h+1, προκαλώντας ανισοζυγία στο u. u ΔΑ περιστροφή w h X v u h+1 v h+1 h+1 w W h X Y Z W Y Z

Παράδειγμα ΔΑ περιστροφής 4 2 ΔΑ ΠΕΡΙΣΤΡΟΦΗ ΑΝΙΣΟΖΥΓΙΑ 6 1 3 5 14 7 15 13 ΕΠΛ 231 Δομές Δεδομένων και Αλγόριθμοι 7-23

Διαδικασίες ΑΔ και ΔΑ-περιστροφής ΑΔ περιστροφή του (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 =. Οι περιστροφές δεν παραβιάζουν τη ΔΔΑ συνθήκη. Το δένδρο που δημιουργείται είναι AVL-δένδρο (οι κόμβοι v και u έχουν ύψος h+1). ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 24

Εφαρμογή περιστροφών Όπως έχουμε περιγράψει η διαδικασία εισαγωγής κόμβου σε AVL-δένδρο γίνεται ως εξής: 1. Εισάγουμε το στοιχείο στο κατάλληλο φύλλο όπως ακριβώς σε ένα δυαδικό δένδρο αναζήτησης. Καταγράφουμε τη διαδρομή που ακολουθήσαμε, δηλαδή αν r είναι η ρίζα και u είναι το φύλλο που προσθέσαμε τότε παίρνουμε διαδρομή με μορφή: u = v 1, v 1,, v k = r 2. Ακολουθούμε τη διαδρομή προς τα πίσω και δίνουμε στα πεδία height των κόμβων τις νέες τους τιμές. 3. Αν σε κάποιο σημείο αυτό προκαλέσει ανισοζυγία και μόλις συμβεί αυτό, (δηλ. αν έχει σαν αποτέλεσμα κάποιοι κόμβοι να έχουν παιδιά που το ύψος τους διαφέρει κατά τιμή >1), τότε εφαρμόζουμε στον κόμβο αυτό, έστω vi, την κατάλληλη περιστροφή. Επιλέγουμε την περιστροφή ως εξής: ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 25

Εφαρμογή περιστροφών i. αν ο v i-1 είναι αριστερό παιδί του v i και ο v i-2 αριστερό παιδί του v i-1 τότε εφαρμόζουμε την A-περιστροφή, ii. iii. iv. αν ο v i-1 είναι δεξιό παιδί του v i και ο v i-2 δεξιό παιδί του v i-1 τότε εφαρμόζουμε τη Δ-περιστροφή, αν ο v i-1 είναι αριστερό παιδί του v i και ο v i-2 δεξιό παιδί του v i-1 τότε εφαρμόζουμε την AΔ-περιστροφή, αν ο v i-1 είναι δεξιό παιδί του v i και ο v i-2 αριστερό παιδί του v i-1 τότε εφαρμόζουμε τη ΔA-περιστροφή. 4. Ενημερώνουμε τον πατέρα του vi για το ποιο είναι το παιδί του ως αποτέλεσμα της περιστροφής, ή, αν ο vi είναι η ρίζα του δένδρου, ενημερώνουμε την καλούσα συνάρτηση για τη νέα ρίζα. ΠΡΟΣΟΧΗ: H περιστροφή εφαρμόζεται στον πιο χαμηλό κόμβο που παρουσιάζει ανισοζυγία. Ένα AVL-δένδρο είναι ΔΔΑ! ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 26

AVL Δέντρα: Ασκήσεις ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 27 Τι περιστροφή πρέπει να γίνει όταν εισαχθεί το 1; 26 9 72 2 21 1

AVL Δέντρα: Ασκήσεις ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 28 Τι περιστροφή πρέπει να γίνει όταν εισαχθεί το 3; 26 9 72 2 21 3

AVL Δέντρα: Ασκήσεις ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 29 Τι περιστροφή πρέπει να γίνει όταν εισαχθεί το 95; 26 9 72 60 90 95

AVL Δέντρα: Ασκήσεις ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 30 Τι περιστροφή πρέπει να γίνει όταν εισαχθεί το 71; 26 9 72 60 90 71