Lab 6: AVL Trees 29/10/20101ΕΠΛ231 - Δομές Δεδομένων και Αλγόριθμοι.

Slides:



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

Μάρτιος 2011 Βαρόμετρο ΕΒΕΘ - Καταναλωτές. “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι.
Γραφήματα & Επίπεδα Γραφήματα
HTML.
Lab 3: Sorted List ΕΠΛ231-Δομές Δεδομένων και Αλγόριθμοι18/10/2010.
Τα Μαθηματικά στην Αρχαία Αίγυπτο Ν. Καστάνη
Διακριτά Μαθηματικά ΙI Δυαδικά Δέντρα Αναζήτησης
Διακριτά Μαθηματικά ΙI Δέντρα
Εκτέλεση Αλγορίθμων σε ψευδογλώσσα
Γυμνάσιο Νέας Κυδωνίας
Δομές Δεδομένων - Δυαδικά Δένδρα (binary trees)
Ισορροπημένα Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να επιτύχουμε χρόνο εκτέλεσης για.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Δυναμικός Κατακερματισμός.
Δρ. Παναγιώτης Συμεωνίδης
© GfK 2012 | Title of presentation | DD. Month
-17 Προσδοκίες οικονομικής ανάπτυξης στην Ευρώπη Σεπτέμβριος 2013 Δείκτης > +20 Δείκτης 0 a +20 Δείκτης 0 a -20 Δείκτης < -20 Σύνολο στην Ευρωπαϊκή Ένωση:
Η μαθητική μετακίνηση του 1ου ΕΠΑΛ Ν.Ιωνίας
Βαρόμετρο ΕΒΕΘ - Καταναλωτές Σεπτέμβριος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι.
Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL
ΒΑΡΟΜΕΤΡΟ ΕΒΕΘ – ΣΕΠΤΕΜΒΡΙΟΣ 2014 AD – HOC ΕΡΩΤΗΣΕΙΣ.
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δεντρικά Ευρετήρια.
Δυναμική Διατήρηση Γραμμικής Διάταξης Διατηρεί μια γραμμική διάταξη δυναμικά μεταβαλλόμενης συλλογής στοιχείων. Υποστηρίζει τις λειτουργίες: Έλεγχος της.
Βαρόμετρο ΕΒΕΘ Μάρτιος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι του Νομού Θεσσαλονίκης”
ΚΕΦΑΛΑΙΟ 3 Περιγραφική Στατιστική
Ισορροπημένα Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να επιτύχουμε χρόνο εκτέλεσης για.
ΕΠΛ Θεωρία και Πρακτική Μεταγλωττιστών5-1 Επίλυσης ασάφειας με εισαγωγή μη-τερματικών Π.χ. stmt = “if”, expr, “then”, stmt | “if”, expr, “then”,
A Balanced Tree Structure for Peer-to-Peer Networks
Βαρόμετρο ΕΒΕΘ Μάρτιος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι του Νομού Θεσσαλονίκης”
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Χειριζόμαστε ένα σύνολο στοιχείων όπου το κάθε.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
Δομές Δεδομένων 1 Στοίβα. Δομές Δεδομένων 2 Στοίβα (stack)  Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή – πρώτη εξαγωγή)  Περιορισμένος.
Ισορροπημένα Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να επιτύχουμε χρόνο εκτέλεσης για.
Γράφοι: Προβλήματα και Αλγόριθμοι
Μεταβλητές – εντολές εκχώρησης- δομή ακολουθίας
Ουρά Προτεραιότητας: Heap
Βαρόμετρο ΕΒΕΘ - Καταναλωτές Μάρτιος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι.
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Τμ. Πληροφορικής,
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος ( ) Νίκος Παπασπύρου
Επιθεωρήσεις ΔΚΕΕ ( )  Επιθεωρήσεις : 25  Έκλεισαν Ικανοποιητικά 6 (24%) και Μη Ικανοποιητικά 19 (76%)  Μη Συμμορφώσεις : 257  Διορθωτικές.
Δομές Δεδομένων - Ισοζυγισμένα Δυαδικά Δένδρα (balanced binary trees)
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες:
ΤΑ ΔΟΝΤΙΑ ΜΑΣ.
Βαρόμετρο ΕΒΕΘ Σεπτέμβριος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι του Νομού.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι 8-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: 2-3 Δένδρα, Υλοποίηση και πράξεις Β-δένδρα B-Δένδρα.
EPL231 – Data Structures and Algorithms
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
Παράδειγμα B + -Tree Υποθέτουμε B + -Tree τάξης 3 (α=2, b=3)  Κάθε φύλλο θα έχει 2 ως 3 το πολύ στοιχεία  Κάθε εσωτερικός κόμβος θα έχει 2 ως 3 το πολύ.
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Ευρετήρια.
ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ 1 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ ΔΕΝΔΡΑ.
1.  Τα κύματα δημιουργούνται όταν ένα σύστημα διαταράσσεται από την κατάσταση ισορροπίας και η ενέργεια ταξιδεύει από μια περιοχή του συστήματος σε.
Δυναμικός Κατακερματισμός
Διδάσκων: Δρ. Τσίντζα Παναγιώτα
Δένδρα.
EPL231 – Data Structures and Algorithms
Δένδρα Δένδρο είναι ένα συνεκτικό άκυκλο γράφημα. Δένδρο Δένδρο Δένδρο
Αναζήτηση με Αντιπαλότητα
Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε χρόνο εκτέλεσης
Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης
Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων όπου το κάθε στοιχείο έχει ένα κλειδί από ολικά διατεταγμένο σύνολο Θέλουμε να υποστηρίξουμε δύο.
14η Διάλεξη Δέντρα Δυαδικής Αναζήτησης Ε. Μαρκάκης
ΣΤΟΙΧΕΙΑ ΘΕΩΡΙΑΣ ΓΡΑΦΗΜΑΤΩΝ II
(2,4) Trees 11/15/2018 8:56 PM (2,4) Δέντρα (2,4) Δέντρα.
Φόρμες Φόρμες χρησιμοποιούνται για να δημιουργήσουμε ένα φιλικό περιβάλλον για την διαχείριση των δεδομένων της βάσης. Επίσης δίνεται η δυνατότητα δημιουργίας.
Εξωτερική Αναζήτηση Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη
Δυναμικός Κατακερματισμός
Αναδρομή Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:
Μεταγράφημα παρουσίασης:

Lab 6: AVL Trees 29/10/20101ΕΠΛ231 - Δομές Δεδομένων και Αλγόριθμοι

29/10/2010  AVL ( G.M. Adelson-Velskii, E.M. Landis) δέντρο:  Είναι Δυαδικό Δέντρο Αναζήτησης  Τα υποδέντρα ενός οποιουδήποτε κόμβου έχουν ύψος το οποίο διαφέρει το πολύ κατά ένα  Χρόνοι:  Εισαγωγή  Διαγραφή  Αναζήτηση 2ΕΠΛ231 - Δομές Δεδομένων και Αλγόριθμοι

29/10/ ΕΠΛ231 - Δομές Δεδομένων και Αλγόριθμοι

29/10/20104ΕΠΛ231 - Δομές Δεδομένων και Αλγόριθμοι

29/10/2010 Εισαγωγή 72: Εισαγωγή 26: Εισαγωγή 9: ΑΝΙΣΟΖΥΓΙΑ ΠΕΡΙΣΤΡΟΦΗ  Εισαγωγή των στοιχείων {72, 26, 9} 5ΕΠΛ231 - Δομές Δεδομένων και Αλγόριθμοι

29/10/2010  Πριν την εισαγωγή: τα δένδρα 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 6ΕΠΛ231 - Δομές Δεδομένων και Αλγόριθμοι

 Αριστερή περιστροφή του (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. 29/10/20107ΕΠΛ231 - Δομές Δεδομένων και Αλγόριθμοι

29/10/ ΑΝΙΣΟΖΥΓΙΑ Α-ΠΕΡΙΣΤΡΟΦΗ 8ΕΠΛ231 - Δομές Δεδομένων και Αλγόριθμοι

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

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

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

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

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

29/10/ ΑΝΙΣΟΖΥΓΙΑ ΔΑ ΠΕΡΙΣΤΡΟΦΗ 14ΕΠΛ231 - Δομές Δεδομένων και Αλγόριθμοι

29/10/2010  ΑΔ περιστροφή του (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). 15ΕΠΛ231 - Δομές Δεδομένων και Αλγόριθμοι

29/10/2010  Στην θεωρία είναι εύκολο.  Βλέπουμε τις κατευθύνσεις που ακολουθήσαμε για να εισάξουμε τον κόμβο  Ανάλογα με τις κατευθύνσεις, επιλέγουμε το είδος της περιστροφής.  Τι γίνεται τώρα που πρέπει να γράψουμε κώδικα? 16ΕΠΛ231 - Δομές Δεδομένων και Αλγόριθμοι

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

 αν ο v i-1 είναι αριστερό παιδί του v i και ο v i-2 αριστερό παιδί του v i-1 τότε εφαρμόζουμε την A-περιστροφή,  αν ο 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-περιστροφή. 29/10/2010ΕΠΛ231 - Δομές Δεδομένων και Αλγόριθμοι18

 Περιστροφή αριστερά:  Κάναμε εισαγωγή αριστερά δύο φορές  Αριστερή Περιστροφή  singleRotationLeft()  Κάναμε εισαγωγή αριστερά και μετά δεξία  ΑΔ περιστροφή  doubleRotationLeftRight()  Περιστροφή δεξιά:  Κάναμε εισαγωγή δεξιά δύο φορές  Δεξιά Περιστροφή  singleRotationRight()  Κάναμε εισαγωγή δεξιά και μετά αριστερά  ΔΑ περιστροφή  doubleRotationRightLeft() 29/10/201019ΕΠΛ231 - Δομές Δεδομένων και Αλγόριθμοι

 Βρίσκονται στα αρχεία  AVLTree.h  AVLTree.cpp  Συμπληρώστε την:  insertNode()  Υλοποίηστε:  singleRotationLeft()  singleRotationRight()  doubleRotationLeftRight()  doubleRotationRightLeft() 29/10/201020ΕΠΛ231 - Δομές Δεδομένων και Αλγόριθμοι

29/10/201021ΕΠΛ231 - Δομές Δεδομένων και Αλγόριθμοι