Red-black δέντρα (Κεφ. 5)

Σχετικά έγγραφα
Red- black δέντρα Εκτενείς Δομές Δεδομένων (Κεφ. 5)

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

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

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

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

ΑΥΤΟΡΓΑΝΟΥΜΕΝΕΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

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

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

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

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

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

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

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

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

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

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

Πελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο

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

Προγραμματισμός Ι (ΗΥ120)

έντρα Πολλαπλής ιακλάδωσης και (a, b)- έντρα

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

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

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

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

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

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

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

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

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

Advanced Data Indexing

AVL-trees C++ implementation

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

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

Advanced Data Indexing

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

Ουρές προτεραιότητας

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

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

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

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

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

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

ΑΛΓΟΡΙΘΜΟΙ ΜΕ C. ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής. CMOR Lab. Computational Methodologies and Operations Research

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

Διασυνδεδεμένες Δομές. Δυαδικά Δέντρα. Προγραμματισμός II 1

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

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

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

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

Μάθημα 22: Δυαδικά δέντρα (Binary Trees)

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

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

Cuckoo Hashing. Αλγόριθμοι και Πολυπλοκότητα. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

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

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

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

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

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

ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων

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

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

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

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

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

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

Διάλεξη 11: Δέντρα Ι - Εισαγωγή σε Δενδρικές Δομές Δεδομένων

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

Κεφ.11: Ευρετήρια και Κατακερματισμός

ΠΛΗ111. Ανοιξη Μάθηµα 7 ο. έντρο. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 7η: Ουρές Προτεραιότητας Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

Δομές Δεδομένων Εργαστηριακή Άσκηση Γκόγκος Νίκος Α.Μ.: 4973 Έτος: 3 ο gkogkos@ceid.upatras.gr. Εισαγωγικά:

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

Δοµές Δεδοµένων. 14η Διάλεξη Δέντρα Δυαδικής Αναζήτησης. Ε. Μαρκάκης

Insert (P) : Προσθέτει ένα νέο πρότυπο P στο λεξικό D. Delete (P) : Διαγράφει το πρότυπο P από το λεξικό D

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

HY240 : Δομές Δεδομένων. Φροντιστήριο Προγραμματιστικής Εργασίας 2 ο και 3 ο Μέρος

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

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

Προγραμματιστική Εργασία Μέρος Β. Δρακωνάκης Κώστας Παπαϊωάννου Αντώνης

ΠΛΗ21 Κεφάλαιο 2. ΠΛΗ21 Ψηφιακά Συστήματα: Τόμος Α Κεφάλαιο: Παράσταση Προσημασμένων Αριθμών Συμπληρώματα

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 3: Δένδρα

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

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

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης

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

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

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

Πόσες από αυτές τις σκακιέρες είναι αλήθεια διαφορετικές;

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

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

επιστρέφει το αμέσως μεγαλύτερο από το x στοιχείο του S επιστρέφει το αμέσως μικρότερο από το x στοιχείο του S

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 8: ΧΡΗΣΗ ΔΟΜΩΝ ΔΕΝΤΡΟΥ ΚΑΙ ΣΩΡΟΥ ΓΙΑ ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΤΑΞΙΝΟΜΗΣΗΣ ΑΛΓΟΡΙΘΜΟΣ HEAPSORT

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Βασικές Ιδιότητες και Διάσχιση Κεφάλαιο 5 ( και ) Ε. Μαρκάκης Επίκουρος Καθηγητής

Δέντρα (Trees) - Ιεραρχική Δομή

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

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

Transcript:

Red-black δέντρα (Κεφ. ) Δομές Δεδομένων Παπαγιαννόπουλος Δημήτριος 30 Μαρτίου 07 30 Μαρτίου 07 papagianno@ceid.upatras.gr

. Εισαγωγή Περιεχόμενα. Ορισμός red-black δέντρων 3. Αναζήτηση σε red-black δέντρα 4. Ένθεση σε red-black δέντρα. Απόσβεση σε red-black δέντρα 6. Απόδοση red-black δέντρων 7. Ισοδυναμία red-black δέντρων και (,4) δέντρων

Εισαγωγή Η δομή που θα παρουσιαστεί έχει τις εξής ιδιότητες: Είναι πλήρες δυαδικό δέντρο Υψοζυγισμένο δέντρο ( & η ζύγιση επιτυγχάνεται με τη χρήση ενός μόνο bit) Αποθηκεύει δεδομένα μόνο στους εσωτερικούς κόμβους και όχι στα φύλλα 3

Ορισμός red-black tree Ένα πλήρες δυαδικό δέντρο είναι red-black δέντρο όταν κάθε κόμβος είναι είτε κόκκινος είτε μαύρος και ικανοποιούνται οι εξής περιορισμοί: Π. Η ρίζα είναι μαύρη Π. Τα φύλλα είναι μαύρα Π3. Κάθε μονοπάτι από τη ρίζα ως τα φύλλα έχει τον ίδιο αριθμό μαύρων κόμβων Π4. Κάθε κόκκινος κόμβος έχει μαύρο πατέρα 4 7 9 4

Αναζήτηση (Access) Για την αναζήτηση του στοιχείου x σε ένα red-black tree ακολουθούνται τα εξής βήματα:. Ξεκίνα από τη ρίζα.. Για κάθε κόμβο v:. Αν x<v επισκέψου το αριστερό παιδί του v. Αν x>v επισκέψου το δεξιό παιδί του v 3. Aν x=v επέστρεψε

Ένθεση (Insertion) Για την εισαγωγή του στοιχείου x σε ένα red-black tree ακολουθούνται τα εξής βήματα:. Εύρεση του κατάλληλου φύλλου y στο δέντρο για την εισαγωγή της τιμής x (Κλήση της Access(x)).. Αντικατάσταση του y με έναν κόκκινο κόμβο με τιμή x και μαύρα παιδιά-φύλλα. 3. Εφαρμογή διάφορων μετασχηματισμών αναδρομικά από την ρίζα στον κόμβο x έτσι ώστε να ικανοποιούνται οι περιορισμοί. 6

Ένθεση (Insertion) Περίπτωση : Το x είναι η ρίζα. [Καταπάτηση Π] Λύση: Χρωματισμός της ρίζας. [Τερματική περίπτωση] x x 7

Ένθεση (Insertion) Περίπτωση : Ο πατέρας του x, p(x) είναι μαύρος. [Καμμία Καταπάτηση] p(x) x 8

Ένθεση (Insertion) Περίπτωση 3: Ο πατέρας του x, p(x) και ο αδερφός του p(x) είναι και οι κόκκινοι. [Καταπάτηση Π4] Λύση: Εναλλαγή χρωμάτων. [Μη τερματική περίπτωση] x p(x) x p(x) 9

Ένθεση (Insertion) Περίπτωση 4: Ο πατέρας του x, p(x) είναι κόκκινος, ο αδερφός του p(x) είναι μαύρος και οι x και p(x) είναι και οι παιδιά του ίδιου είδους (δηλαδή είναι και τα αριστερά ή και τα δεξιά παιδιά του πατέρα τους). [Καταπάτηση Π4] Λύση: Απλή περιστροφή. [Τερματική περίπτωση] p(p(x)) p(x) p(p(x)) p(x) p(p(x)) x p(x) x x 0

Ένθεση (Insertion) Περίπτωση : Ο πατέρας του x, p(x) είναι κόκκινος, ο αδερφός του p(x) είναι μαύρος και οι x και p(x) είναι και οι παιδιά διαφορετικού είδους (δηλαδή ο ένας είναι αριστερό και ο άλλος δεξιό παιδί του πατέρα τους). [Καταπάτηση Π4] Λύση: Διπλή περιστροφή. [Τερματική περίπτωση] p(p(x)) p(p(x)) x p(p(x)) p(x) x p(x) p(x) x

Άσκηση (Insertion) Να αποθηκευτούν οι τιμές,,,3,4 σε ένα red-black tree.. Insert(). Insert() 3. Insert() 4. Insert(3). Insert(4)

Άσκηση (Insertion) ) Insert() 3

Άσκηση (Insertion) ) Insert() 4

Άσκηση (Insertion) ) Insert()

Άσκηση (Insertion) ) Insert() 6

Άσκηση (Insertion) ) Insert() 7

Άσκηση (Insertion) 3) Insert() 8

Άσκηση (Insertion) 3) Insert() 9

Άσκηση (Insertion) 3) Insert() 0

Άσκηση (Insertion) 3) Insert()

Άσκηση (Insertion) 4) Insert(3)

Άσκηση (Insertion) 4) Insert(3) 3 3

Άσκηση (Insertion) 4) Insert(3) 3 3 4

Άσκηση (Insertion) 4) Insert(3) 3 3 3

Άσκηση (Insertion) ) Insert(4) 3 6

Άσκηση (Insertion) ) Insert(4) 3 3 4 7

Άσκηση (Insertion) ) Insert(4) 3 3 4 4 3 8

Άσκηση (Insertion) ) Insert(4) 4 3 3 4 3 4 3 9

Απόσβεση (Deletion) Η διαγραφή είναι μια πιο πολύπλοκη διαδικασία από την ένθεση. Για την διαγραφή του στοιχείου x από ένα red-black tree ακολουθούνται τα εξής βήματα:. Εύρεση της κατάλληλης θέσης στο δέντρο για την απόσβεση της τιμής x (Κλήση της Access(x)).. Έστω v ο πατέρας του x και y ο αδερφός του. Αντικατάσταση του v με τον y και απόσβεση του v και του x από το δέντρο. 3. Εφαρμογή διάφορων μετασχηματισμών αναδρομικά από την ρίζα στον κόμβο x έτσι ώστε να ικανοποιούνται οι περιορισμοί. 30

Απόσβεση (Deletion) Οι πιθανοί μετασχηματισμοί που μπορούν να γίνουν είναι:. Εναλλαγές χρώματος. Μη τερματική. Τερματική. Περιστροφές. Μη τερματική απλή περιστροφή. Τερματική διπλή περιστροφή 3. Τερματική απλή περιστροφή Αρχικά εφαρμόζονται οι μη τερματικοί μετασχηματισμοί επαναληπτικά, μέχρι να μπορεί να εφαρμοστεί κάποιος τερματικός μετασχηματισμός. 3

Απόδοση Red-Black tree Ύψος red-black δέντρου: Θ(logn) Για κάθε ένθεση ή απόσβεση απατούνται: Πράξεις εναλλαγής χρωμάτων: Ο(logn) Περιστροφές: Ο() Κόστος για Access, Insert, Delete: O(logn) 3

Ισοδυναμία red-black δέντρων και (,4) δέντρων Από οποιοδήποτε (,4) δέντρο μπορεί να προκύψει ένα ισοδύναμο red-black δέντρο (και αντίστροφα) εφαρμόζοντας κάποιους απλούς μετασχηματισμούς. 33

Ισοδυναμία red-black δέντρων και (,4) δέντρων Μετασχηματισμός κόμβου με παιδιά Α Α Β C Β C 34

Ισοδυναμία red-black δέντρων και (,4) δέντρων Μετασχηματισμός κόμβου με 3 παιδιά Α Β A B E C A B C D E C D D E 3

Ισοδυναμία red-black δέντρων και (,4) δέντρων Μετασχηματισμός κόμβου με 4 παιδιά Α Β C A B C D E F G D E F G 36

References http://en.wikipedia.org/wiki/red%e%80%93black_tree https://www.cs.usfca.edu/~galles/visualization/redblack.html https://en.wikipedia.org/wiki/%e%80%933%e%80%934_tree 37

Ευχαριστώ Ερωτήσεις? 38