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

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

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

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

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

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

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

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

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

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

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

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

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

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

Διάλεξη 13: Δέντρα ΙΙΙ Ισοζυγισμένα Δέντρα, AVL Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου

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

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

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

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

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

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

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

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

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

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

Ουρά Προτεραιότητας (priority queue)

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

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

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

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

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

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

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

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

Δοµές Δεδοµένων. 18η Διάλεξη Ισορροπηµένα δέντρα. Ε. Μαρκάκης

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

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

Δομές Αναζήτησης. κλειδί από ολικά διατεταγμένο σύνολο. Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου

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

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

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

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

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

Δένδρα. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

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

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

Ουρά Προτεραιότητας (priority queue)

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

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

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

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

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

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

Δομές δεδομένων. Ενότητα 8: Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

Κεφάλαιο 14 Προηγμένες Ουρές Προτεραιότητας

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

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

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

Θέματα Υπολογισμού στον Πολιτισμό - Δένδρα. Δένδρα

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

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

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

Γράφημα. Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα: Σύνολο κορυφών (vertex set) Σύνολο ακμών (edge set) 4 5 πλήθος κορυφών πλήθος ακμών

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

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

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

Π(n) : 1 + a + + a n = αν+1 1

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (3)

Παράδειγμα δομικής επαγωγής Ορισμός δομικής επαγωγής Συμβολοσειρές Γλώσσες Δυαδικά δένδρα Μαθηματικά Πληροφορικής 3ο Μάθημα Αρχικός συγγραφέας: Ηλίας

ΛΥΣΗ ΤΗΣ ΔΕΥΤΕΡΗΣ ΑΣΚΗΣΗΣ Όλγα Γκουντούνα

Π(n) : 1 + a + + a n = an+1 1 a 1. a 1. + a k+1 = ak+2 1

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

Δυναμική Διατήρηση Γραμμικής Διάταξης

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 11: Μη Ασυμφραστικές Γλώσσες

Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL

Παράδειγμα δομικής επαγωγής Ορισμός δομικής επαγωγής Συμβολοσειρές Γλώσσες Δυαδικά δένδρα Μαθηματικά Πληροφορικής 3ο Μάθημα Τμήμα Πληροφορικής και Τηλ

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

Δομές Αναζήτησης. κλειδί από ολικά διατεταγμένο σύνολο. Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες

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

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

Κατηγορίες Συμπίεσης. Συμπίεση με απώλειες δεδομένων (lossy compression) π.χ. συμπίεση εικόνας και ήχου

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

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

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

Επαγωγή και αναδρομή για άκυκλα συνεκτικά γραφήματα

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

Αναδροµή. Σε αυτήν την (βοηθητική) ενότητα θα µελετηθούν τα εξής : Η έννοια της αναδροµής Υλοποίηση και αποδοτικότητα Αφαίρεση της αναδροµής

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

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

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

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

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

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

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

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

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

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

Transcript:

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

Περιστροφές x αριστερή περιστροφή από το x y α β y γ δεξιά περιστροφή από το y α x β γ link rotl(link x) { link y = x->r; x->r = y->l; y->l = x; return y; } αριστερή περιστροφή Η περιστροφή παίρνει χρόνο Ο(1) link rotr(link y) { link x = y->l; y->l = x->r; x->r = y; return x; } δεξιά περιστροφή

Περιστροφές 17 14 1 10 16 19 3 7 1 15 0 3 17 δεξιά περιστροφή από το 14 10 1 7 14 19 3 3 1 16 0 15

Ισορροπημένα Δένδρα Μερικοί τύποι ισορροπημένων δένδρων Τυχαιοποιημένα δένδρα Αρθρωτά δένδρα (splay trees) Δένδρα AVL Κοκκινόμαυρα δένδρα (a,b) δένδρα Όλα τα παραπάνω χρησιμοποιούν περιστροφές για να παραμείνουν ισορροπημένα

Κοκκινόμαυρα Δένδρα (red-black trees) 17 14 1 Κάθε κόμβος έχει τα ακόλουθα πεδία key : κλειδί color : χρώμα (1 bit) left, right: δείκτες στα παιδιά p : δείκτης στο γονέα (*) 10 16 19 3 7 1 15 0 (*) δεν είναι απαραίτητος, αλλά απλοποιεί την περιγραφή και υλοποίηση των αλγορίθμων 3 http://www.cse.yorku.ca/~aaw/sotirios/redblacktree.html Κάθε κόμβος είναι κόκκινος ή μαύρος Ο ριζικός κόμβος είναι μαύρος Οι καταληκτικοί κόμβοι είναι μαύροι Οι θυγατρικοί κόμβοι ενός κόκκινου κόμβου είναι μαύροι Οι διαδρομές από έναν κόμβο προς τους καταληκτικούς κόμβους-απογόνους του περιέχουν τον ίδιο αριθμό μαύρων κόμβων

Κοκκινόμαυρα Δένδρα 17 14 1 10 16 19 3 7 1 15 0 3 Υλοποίηση με κόμβο-φρουρό NIL αντί για μηδενικούς (null) δείκτες κενός καταληκτικός κόμβος NIL

Κοκκινόμαυρα Δένδρα (red-black trees) 10 3 17 Μαύρο ύψος κόμβου x b(x) = πλήθος μαύρων κόμβων εκτός 14 1 του x μέχρι κάποιο καταληκτικό κόμβο (NIL) 1 1 1 16 19 3 1 1 1 7 1 15 1 0 1 3 Κάθε κόμβος είναι κόκκινος ή μαύρος Ο ριζικός κόμβος είναι μαύρος Οι καταληκτικοί κόμβοι είναι μαύροι Οι θυγατρικοί κόμβοι ενός κόκκινου κόμβου είναι μαύροι Οι διαδρομές από έναν κόμβο προς τους καταληκτικούς κόμβους-απογόνους του περιέχουν τον ίδιο αριθμό μαύρων κόμβων

Κοκκινόμαυρα Δένδρα (red-black trees) 10 3 17 Μαύρο ύψος κόμβου x b(x) = πλήθος μαύρων κόμβων εκτός 14 1 του x μέχρι κάποιο καταληκτικό κόμβο (NIL) 1 1 1 16 19 3 1 1 1 7 1 15 1 0 1 3 Λήμμα Ένα κοκκινόμαυρο δένδρο με n εσωτερικούς κόμβους έχει ύψος το πολύ Κάθε κόμβος είναι κόκκινος ή μαύρος Ο ριζικός κόμβος είναι μαύρος Οι καταληκτικοί κόμβοι είναι μαύροι Οι θυγατρικοί κόμβοι ενός κόκκινου κόμβου είναι μαύροι Οι διαδρομές από έναν κόμβο προς τους καταληκτικούς κόμβους-απογόνους του περιέχουν τον ίδιο αριθμό μαύρων κόμβων

Κοκκινόμαυρα Δένδρα Μαύρο ύψος κόμβου x b(x) = πλήθος μαύρων κόμβων εκτός του x μέχρι κάποιο καταληκτικό κόμβο (NIL) Λήμμα Ένα κοκκινόμαυρο δένδρο με n εσωτερικούς κόμβους έχει ύψος το πολύ Απόδειξη Δείχνουμε ότι το υποδένδρο με ρίζα x έχει τουλάχιστον εσωτερικούς κόμβους. Χρησιμοποιούμε επαγωγή ως προς το ύψος. Έστω k το ύψος του x. Βάση επαγωγής: k=0. Τότε ο x είναι φύλλο και επομένως το πλήθος των εσωτερικών κόμβων στο υποδένδρο με ρίζα x είναι 0.

Κοκκινόμαυρα Δένδρα Μαύρο ύψος κόμβου x b(x) = πλήθος μαύρων κόμβων εκτός του x μέχρι κάποιο καταληκτικό κόμβο (NIL) Λήμμα Ένα κοκκινόμαυρο δένδρο με n εσωτερικούς κόμβους έχει ύψος το πολύ Απόδειξη Δείχνουμε ότι το υποδένδρο με ρίζα x έχει τουλάχιστον εσωτερικούς κόμβους. Χρησιμοποιούμε επαγωγή ως προς το ύψος. Έστω k το ύψος του x. Επαγωγική υπόθεση: Οποιοδήποτε υπoδένδρο με ρίζα κόμβο y ύψους μικρότερου του k έχει τουλάχιστον εσωτερικούς κόμβους.

Κοκκινόμαυρα Δένδρα Μαύρο ύψος κόμβου x b(x) = πλήθος μαύρων κόμβων εκτός του x μέχρι κάποιο καταληκτικό κόμβο (NIL) Λήμμα Ένα κοκκινόμαυρο δένδρο με n εσωτερικούς κόμβους έχει ύψος το πολύ Απόδειξη Δείχνουμε ότι το υποδένδρο με ρίζα x έχει τουλάχιστον εσωτερικούς κόμβους. Χρησιμοποιούμε επαγωγή ως προς το ύψος. Έστω k το ύψος του x. Επαγωγική υπόθεση: Οποιοδήποτε υπoδένδρο με ρίζα κόμβο y ύψους μικρότερου του k έχει τουλάχιστον εσωτερικούς κόμβους. Επαγωγικό βήμα: Έστω y και z τα παιδιά του x. Ισχύει x y z Από την επαγωγική υπόθεση, τo υποδένδρo με ρίζα y έχει εσωτερικούς κόμβους. Ομοίως και για το υποδένδρο με ρίζα το z.

Κοκκινόμαυρα Δένδρα Μαύρο ύψος κόμβου x b(x) = πλήθος μαύρων κόμβων εκτός του x μέχρι κάποιο καταληκτικό κόμβο (NIL) Λήμμα Ένα κοκκινόμαυρο δένδρο με n εσωτερικούς κόμβους έχει ύψος το πολύ Απόδειξη Δείχνουμε ότι το υποδένδρο με ρίζα x έχει τουλάχιστον εσωτερικούς κόμβους. Χρησιμοποιούμε επαγωγή ως προς το ύψος. Έστω k το ύψος του x. Επαγωγική υπόθεση: Οποιοδήποτε υπoδένδρο με ρίζα κόμβο y ύψους μικρότερου του k έχει τουλάχιστον εσωτερικούς κόμβους. Επαγωγικό βήμα: Άρα το υπoδένδρο με ρίζα x έχει αριθμό εσωτερικών κόμβων μεγαλύτερο ή ίσο του x y z

Κοκκινόμαυρα Δένδρα Μαύρο ύψος κόμβου x b(x) = πλήθος μαύρων κόμβων εκτός του x μέχρι κάποιο καταληκτικό κόμβο (NIL) Λήμμα Ένα κοκκινόμαυρο δένδρο με n εσωτερικούς κόμβους έχει ύψος το πολύ Δείξαμε ότι το υποδένδρο με ρίζα x έχει εσωτερικούς κόμβους. Έστω h το ύψος της ρίζας και b το μαύρο ύψος της ρίζας. Ισχύει και επομένως

Εισαγωγή 1. Εκτελούμε τον αλγόριθμο εισαγωγής όπως σε ένα απλό δυαδικό δένδρο. Χρωματίζουμε το νέο κόμβο x κόκκινο.. Εξετάζουμε αν οι ιδιότητες χρωματισμού εξακολουθούν να ισχύουν. Αν ναι τερματίζουμε. 3. Διαφορετικά (ο πατέρας έχει κόκκινο χρώμα και ο παππούς μαύρο) αποκαθιστούμε τις ιδιότητες χρωματισμού χρησιμοποιώντας περιστροφές και αλλαγές χρωμάτων. Η παραπάνω διαδικασία ολοκληρώνεται σε χρόνο

Εισαγωγή 11 14 1 7 15 5 8

Εισαγωγή 11 14 1 7 15 5 8 4 εισαγωγή του 4 Παραβιάζεται στο 5 η συνθήκη: «Οι θυγατρικοί κόμβοι ενός κόκκινου κόμβου είναι μαύροι»

Εισαγωγή 11 14 1 7 15 Αλλαγή χρωμάτων 5 8 4 Παραβιάζεται στο 5 η συνθήκη: «Οι θυγατρικοί κόμβοι ενός κόκκινου κόμβου είναι μαύροι»

Εισαγωγή 11 14 1 7 15 5 8 4 Παραβιάζεται στο η συνθήκη: «Οι θυγατρικοί κόμβοι ενός κόκκινου κόμβου είναι μαύροι»

Εισαγωγή 11 αριστερή περιστροφή από 14 1 7 15 5 8 4 Παραβιάζεται στο η συνθήκη: «Οι θυγατρικοί κόμβοι ενός κόκκινου κόμβου είναι μαύροι»

Εισαγωγή 11 7 14 8 15 1 5 4 Παραβιάζεται στο 7 η συνθήκη: «Οι θυγατρικοί κόμβοι ενός κόκκινου κόμβου είναι μαύροι»

Εισαγωγή δεξιά περιστροφή από 7 και αλλαγή χρωμάτων 7 11 14 8 15 1 5 4 Παραβιάζεται στο 7 η συνθήκη: «Οι θυγατρικοί κόμβοι ενός κόκκινου κόμβου είναι μαύροι»

Εισαγωγή δεξιά περιστροφή από 7 και αλλαγή χρωμάτων 7 11 1 5 8 14 4 15 Παραβιάζεται στο 7 η συνθήκη: «Οι θυγατρικοί κόμβοι ενός κόκκινου κόμβου είναι μαύροι»

Εισαγωγή έγκυρο κοκκινόμαυρο δένδρο 7 11 1 5 8 14 4 15

Εισαγωγή έγκυρο κοκκινόμαυρο δένδρο 7 11 1 5 8 14 4 15 Σε κάθε βήμα μεταφέρουμε την παραβίαση κατά ένα επίπεδο πιο πάνω βήματα αποκατάστασης

Εισαγωγή Διακρίνουμε περιπτώσεις Για απλότητα, υποθέτουμε ότι ο πατέρας του x είναι αριστερό παιδί του πατέρα του (εργαζόμαστε συμμετρικά εάν είναι δεξί παιδί). Συμβολισμός: υποδένδρο με μαύρο ριζικό κόμβο όλα τα έχουν το ίδιο μαύρο ύψος

Εισαγωγή Αποκατάσταση ιδιοτήτων χρωματισμού μετά από εισαγωγή Περίπτωση 1 Ο θείος (κόμβος-αδελφός του πατέρα) του x έχει κόκκινο χρώμα: αλλάζουμε το χρώμα του πατέρα και του θείου σε μαύρο και το χρώμα του παππού σε κόκκινο. Επαναλαμβάνουμε από τον κόμβο-παππού. C C α) A D A D B B Εάν (λόγω συνεχούς εφαρμογής της περίπτωσης 1) φθάσουμε στη ρίζα, την χρωματίζουμε με μαύρο χρώμα και σταματάμε.

Εισαγωγή Αποκατάσταση ιδιοτήτων χρωματισμού μετά από εισαγωγή Περίπτωση 1 Ο θείος (κόμβος-αδελφός του πατέρα) του x έχει κόκκινο χρώμα: αλλάζουμε το χρώμα του πατέρα και του θείου σε μαύρο και το χρώμα του παππού σε κόκκινο. Επαναλαμβάνουμε από τον κόμβο-παππού. C C β) Β D Β D Α Α Εάν (λόγω συνεχούς εφαρμογής της περίπτωσης 1) φθάσουμε στη ρίζα, την χρωματίζουμε με μαύρο χρώμα και σταματάμε.

Εισαγωγή Αποκατάσταση ιδιοτήτων χρωματισμού μετά από εισαγωγή Περίπτωση Ο θείος έχει μαύρο χρώμα και ο x είναι δεξί παιδί του πατέρα του: ανάγουμε την περίπτωση αυτή στην περίπτωση 3 με την εκτέλεση μιας περιστροφής (x και πατέρας του). A C B περίπτωση αριστερή περιστροφή Α Β C περίπτωση 3

Εισαγωγή Αποκατάσταση ιδιοτήτων χρωματισμού μετά από εισαγωγή Περίπτωση 3 Ο θείος έχει μαύρο χρώμα και ο x είναι αριστερό παιδί του πατέρα του. Το χρώμα του πατέρα του x αλλάζει σε μαύρο και του παππού σε κόκκινο και εκτελείται μια δεξιά περιστροφή (x και παππούς του). Τερματίζουμε. A C Α Β C B αριστερή περιστροφή Β C δεξιά περιστροφή και αναχρωμάτιση περίπτωση Α Δεν υπάρχουν πλέον διαδοχικοί κόκκινοι κόμβοι. Η διαδικασία αποκατάστασης έχει ολοκληρωθεί! περίπτωση 3

Εισαγωγή Εισαγωγή κατά σειρά των κλειδιών 90 64 4 1 5 1 19 5 90

Εισαγωγή Εισαγωγή κατά σειρά των κλειδιών 90 64 4 1 5 1 19 5 90

Εισαγωγή Εισαγωγή κατά σειρά των κλειδιών 90 64 4 1 5 1 19 5 90 Περίπτωση 3 64

Εισαγωγή Εισαγωγή κατά σειρά των κλειδιών 90 64 4 1 5 1 19 5 64 90

Εισαγωγή Εισαγωγή κατά σειρά των κλειδιών 90 64 4 1 5 1 19 5 64 90 Περίπτωση 1

Εισαγωγή Εισαγωγή κατά σειρά των κλειδιών 90 64 4 1 5 1 19 5 64 90 Περίπτωση 1 Αλλάζουμε το χρώμα της ρίζας σε μαύρο

Εισαγωγή Εισαγωγή κατά σειρά των κλειδιών 90 64 4 1 5 1 19 5 64 90

Εισαγωγή Εισαγωγή κατά σειρά των κλειδιών 90 64 4 1 5 1 19 5 64 90 Περίπτωση 4

Εισαγωγή Εισαγωγή κατά σειρά των κλειδιών 90 64 4 1 5 1 19 5 64 90 Περίπτωση 4 Μετά την πρώτη περιστροφή Περίπτωση 3

Εισαγωγή Εισαγωγή κατά σειρά των κλειδιών 90 64 4 1 5 1 19 5 64 90 Περίπτωση 4 Μετά την πρώτη περιστροφή Περίπτωση 3 Μετά την αλλαγή χρωμάτων

Εισαγωγή Εισαγωγή κατά σειρά των κλειδιών 90 64 4 1 5 1 19 5 4 90 Περίπτωση 64 Μετά την πρώτη περιστροφή Περίπτωση 3 Μετά την αλλαγή χρωμάτων Μετά τη δεύτερη περιστροφή

Εισαγωγή Εισαγωγή κατά σειρά των κλειδιών 90 64 4 1 5 1 19 5 4 90 Περίπτωση 1 64 1

Εισαγωγή Εισαγωγή κατά σειρά των κλειδιών 90 64 4 1 5 1 19 5 4 90 Περίπτωση 1 64 1

Εισαγωγή Εισαγωγή κατά σειρά των κλειδιών 90 64 4 1 5 1 19 5 4 90 Περίπτωση 3 64 1 5

Εισαγωγή Εισαγωγή κατά σειρά των κλειδιών 90 64 4 1 5 1 19 5 4 90 Περίπτωση 3 64 1 Μετά την αλλαγή χρωμάτων 5

Εισαγωγή Εισαγωγή κατά σειρά των κλειδιών 90 64 4 1 5 1 19 5 4 90 Περίπτωση 3 1 5 64 Μετά την αλλαγή χρωμάτων Μετά την περιστροφή

Εισαγωγή Εισαγωγή κατά σειρά των κλειδιών 90 64 4 1 5 1 19 5 4 90 Περίπτωση 1 1 5 64 1

Εισαγωγή Εισαγωγή κατά σειρά των κλειδιών 90 64 4 1 5 1 19 5 4 90 Περίπτωση 1 5 64 1

Εισαγωγή Εισαγωγή κατά σειρά των κλειδιών 90 64 4 1 5 1 19 5 1 90 Περίπτωση 4 64 5 1 Μετά την πρώτη περιστροφή Περίπτωση 3

Εισαγωγή Εισαγωγή κατά σειρά των κλειδιών 90 64 4 1 5 1 19 5 1 90 Περίπτωση 4 64 5 1 Μετά την πρώτη περιστροφή Περίπτωση 3 Μετά την αλλαγή χρωμάτων

Εισαγωγή Εισαγωγή κατά σειρά των κλειδιών 90 64 4 1 5 1 19 5 1 4 Περίπτωση 5 64 90 1 Μετά την πρώτη περιστροφή Περίπτωση 3 Μετά την αλλαγή χρωμάτων Μετά τη δεύτερη περιστροφή

Εισαγωγή Εισαγωγή κατά σειρά των κλειδιών 90 64 4 1 5 1 19 5 1 4 Περίπτωση 3 5 64 90 1 19

Εισαγωγή Εισαγωγή κατά σειρά των κλειδιών 90 64 4 1 5 1 19 5 1 4 Περίπτωση 3 5 64 90 1 Μετά την αλλαγή χρωμάτων 19

Εισαγωγή Εισαγωγή κατά σειρά των κλειδιών 90 64 4 1 5 1 19 5 1 4 Περίπτωση 3 5 1 90 19 64 Μετά την αλλαγή χρωμάτων Μετά την περιστροφή

Εισαγωγή Εισαγωγή κατά σειρά των κλειδιών 90 64 4 1 5 1 19 5 1 4 Περίπτωση 1 5 1 90 19 64 5

Εισαγωγή Εισαγωγή κατά σειρά των κλειδιών 90 64 4 1 5 1 19 5 1 4 Περίπτωση 1 5 1 90 19 64 5

Εισαγωγή Εισαγωγή κατά σειρά των κλειδιών 90 64 4 1 5 1 19 5 1 4 Περίπτωση 1 5 1 90 19 64 Αλλάζουμε το χρώμα της ρίζας σε μαύρο 5

Εισαγωγή Εισαγωγή κατά σειρά των κλειδιών 90 64 4 1 5 1 19 5 1 4 5 1 90 19 64 5

Εισαγωγή 1. Εκτελούμε τον αλγόριθμο εισαγωγής όπως σε ένα απλό δυαδικό δένδρο. Χρωματίζουμε το νέο κόμβο ερυθρό.. Αποκαθιστούμε τις ιδιότητες του κοκκινόμαυρου δένδρου χρησιμοποιώντας περιστροφές και αλλαγή χρωμάτων 3. Ολοκληρώνεται σε χρόνο αναχρωματίσεις το πολύ δύο περιστροφές

Διαγραφή Διαγραφή κόμβου σε κοκκινόμαυρο δένδρο Έστω y ο κόμβος που θέλουμε να διαγράψουμε. Εφαρμόζουμε τον αλγόριθμο διαγραφής όπως στο απλό δυαδικό δένδρο αναζήτησης, διαγράφοντας τον κόμβο z όπου: 1) z=y αν o y είναι φύλλο ) z=παιδί του y αν o y έχει μόνο ένα παιδί 3) z=διάδοχος του y αν ο y έχει παιδιά (Στις περιπτώσεις και 3 αντιγράφουμε τα περιεχόμενα του z στον y πριν τη διαγραφή.) Στη συνέχεια, ελέγχουμε εάν ισχύουν οι ιδιότητες χρωματισμού, και εάν όχι, εκτελούμε κατάλληλες ενέργειες.

Διαγραφή Διαγραφή κόμβου σε κοκκινόμαυρο δένδρο 1. Ο z είναι κόκκινος ή είναι μαύρος µε κόκκινο παιδί: Δεν υπάρχει πρόβλημα. (Στη δεύτερη περίπτωση το μοναδικό παιδί του z γίνεται μαύρο.). Ο z είναι μαύρος µε μαύρο παιδί: Η διαγραφή του z δημιουργεί (τουλάχιστον) ένα μονοπάτι από τη ρίζα µε μαύρο ύψος μικρότερο κατά ένα. Υποθέτουμε ότι η μονάδα μαύρου χρώματος του z μεταφέρεται στο παιδί του x, το οποίο τώρα γίνεται διπλά μαύρο (που είναι µη επιτρεπτό). Πρέπει να μεταφέρουμε την επιπλέον μονάδα μαύρου χρώματος προς τα επάνω στο δένδρο μέχρι : να φθάσουμε στη ρίζα ή να βρούμε έναν κατάλληλο κόκκινο κόμβο τον οποίο χρωματίζουμε μαύρο και τερματίζουμε ή να εκτελέσουμε κατάλληλες περιστροφές και επαναχρωματισμούς κάποιων κόμβων ώστε να λυθεί το πρόβλημα.

Διαγραφή Διαγραφή κόμβου σε κοκκινόμαυρο δένδρο Θεωρούμε ότι το δένδρο υλοποιείται µε κόμβο-φρουρό (όλοι οι μηδενικοί δείκτες δείχνουν στον κόμβο φρουρό). 17 14 1 10 16 19 3 7 1 15 0 3

Διαγραφή Αποκατάσταση ιδιοτήτων χρωματισμού μετά από εισαγωγή x = το (διπλά μαύρο) παιδί του κόμβου που διαγράφηκε (μπορεί να είναι ο κόμβος φρουρός) w = ο αδελφός του x (ο w δεν μπορεί να είναι ο κόμβος φρουρός. Γιατί;) p = ο πατέρας του x. Υποθέτουμε ότι ο x είναι αριστερό παιδί του p. Η περίπτωση που ο x είναι δεξιό παιδί του p είναι συμμετρική. Περίπτωση 1 Ο w έχει κόκκινο χρώμα. Αναγόμαστε στην περίπτωση, αλλάζοντας το χρώμα του w σε μαύρο και του p σε κόκκινο και εκτελώντας µια αριστερή περιστροφή γύρω από τον πατέρα του x. B D A D B E C E A νέο C

Διαγραφή Αποκατάσταση ιδιοτήτων χρωματισμού μετά από εισαγωγή Περίπτωση Ο w έχει μαύρο χρώμα. α) Και τα δύο παιδιά του w είναι µαύρα. Αλλάζουμε το χρώμα του w σε κόκκινο, του x σε μαύρο (από διπλά μαύρο) και μεταφέρουμε το μαύρο που αφαιρέσαμε από τους w και x στον p. Αν ο p είναι κόκκινος, γίνεται μαύρος και ο αλγόριθμος τερματίζει. Διαφορετικά ο p γίνεται διπλά μαύρος και η διαδικασία επαναλαμβάνεται µε x = p. B B νέο A D A D C E C E

Διαγραφή Αποκατάσταση ιδιοτήτων χρωματισμού μετά από εισαγωγή Περίπτωση Ο w έχει μαύρο χρώμα. β) Το w->left είναι κόκκινο και το w->right μαύρο. Αλλάζουμε το χρώμα του w σε κόκκινο και του w>left σε μαύρο και εκτελούμε δεξιά περιστροφή γύρω από τον w Μεταπίπτουμε στην περίπτωση γ. B B A C νέο A D D C E E

Διαγραφή Αποκατάσταση ιδιοτήτων χρωματισμού μετά από εισαγωγή Περίπτωση Ο w έχει μαύρο χρώμα. γ) Το w->right είναι κόκκινο. Αλλάζουμε το χρώμα του w->right σε μαύρο, του w σε ό,τι ήταν το χρώμα του p και του p σε μαύρο και εκτελούμε αριστερή περιστροφή γύρω από τον p. Ο αλγόριθμος τερματίζει. B D A D B E C E A C

Διαγραφή x = το (διπλά μαύρο) παιδί του κόμβου που διαγράφηκε (μπορεί να είναι ο κόμβος φρουρός) w = ο αδελφός του x p = ο πατέρας του x. Υποθέτουμε ότι ο x είναι αριστερό παιδί του p. Η περίπτωση που ο x είναι δεξιό παιδί του p είναι συμμετρική. Περίπτωση 1 Ο w έχει κόκκινο χρώμα. Αναγόμαστε στην περίπτωση, αλλάζοντας το χρώμα του w σε μαύρο και του p σε κόκκινο και εκτελώντας µια αριστερή περιστροφή γύρω από τον πατέρα του x. Περίπτωση Ο w έχει μαύρο χρώμα. α) Και τα δύο παιδιά του w είναι µαύρα. Αλλάζουμε το χρώμα του w σε κόκκινο, του x σε μαύρο (από διπλά μαύρο) και μεταφέρουμε το μαύρο που αφαιρέσαμε από τους w και x στον p. Αν ο p είναι κόκκινος, γίνεται μαύρος και ο αλγόριθμος τερματίζει. Διαφορετικά ο p γίνεται διπλά μαύρος και η διαδικασία επαναλαμβάνεται µε x = p. β) Το w->left είναι κόκκινο και το w->right μαύρο. Αλλάζουμε το χρώμα του w σε κόκκινο και του w>left σε μαύρο και εκτελούμε δεξιά περιστροφή γύρω από τον w Μεταπίπτουμε στην περίπτωση γ. γ) Το w->right είναι κόκκινο. Αλλάζουμε το χρώμα του w->right σε μαύρο, του w σε ό,τι ήταν το χρώμα του p και του p σε μαύρο και εκτελούμε αριστερή περιστροφή γύρω από τον p. Ο αλγόριθμος τερματίζει. Εάν ο x φθάσει στη ρίζα του δένδρου, αγνοούμε την επιπλέον μονάδα μαύρου χρώματος. Ο αλγόριθμος τερματίζει.

Διαγραφή Διαγραφή κατά σειρά των κλειδιών 1 1 90 4 5 Ο διάδοχος του 1 είναι ο 19. Αντιγράφουμε το 19 στον κόμβο του 1. 4 1 5 1 90 z 19 64 5

Διαγραφή Διαγραφή κατά σειρά των κλειδιών 1 1 90 4 5 Ο διάδοχος του 1 είναι ο 19. Αντιγράφουμε το 19 στον κόμβο του 1. 4 19 5 1 90 z 19 64 5

Διαγραφή Διαγραφή κατά σειρά των κλειδιών 1 1 90 4 5 Ο διάδοχος του 1 είναι ο 19. Αντιγράφουμε το 19 στον κόμβο του 1. Διαγράφουμε τον z. 4 19 5 1 90 z 19 64 5

Διαγραφή Διαγραφή κατά σειρά των κλειδιών 1 1 90 4 5 Ο διάδοχος του 1 είναι ο 19. Αντιγράφουμε το 19 στον κόμβο του 1. Διαγράφουμε τον z. 4 19 Περίπτωση β: Ο w γίνεται κόκκινος, ο w->left μαύρος και εκτελούμε δεξιά περιστροφή του w. 5 1 64 w 90 5

Διαγραφή Διαγραφή κατά σειρά των κλειδιών 1 1 90 4 5 Ο διάδοχος του 1 είναι ο 19. Αντιγράφουμε το 19 στον κόμβο του 1. Διαγράφουμε τον z. 4 19 Περίπτωση β: Ο w γίνεται κόκκινος, ο w->left μαύρος και εκτελούμε δεξιά περιστροφή του w. 5 p 1 5 νέο w 90 Περίπτωση γ: Ο w->right γίνεται μαύρος, ο w κόκκινος και ο p μαύρος και εκτελούμε αριστερή περιστροφή του p. Ο αλγόριθμος τερματίζει. 64

Διαγραφή Διαγραφή κατά σειρά των κλειδιών 1 1 90 4 5 Ο διάδοχος του 1 είναι ο 19. Αντιγράφουμε το 19 στον κόμβο του 1. Διαγράφουμε τον z. 4 19 Περίπτωση β: Ο w γίνεται κόκκινος, ο w->left μαύρος και εκτελούμε δεξιά περιστροφή του w. 5 5 90 1 64 Περίπτωση γ: Ο w->right γίνεται μαύρος, ο w κόκκινος και ο p μαύρος και εκτελούμε αριστερή περιστροφή του p. Ο αλγόριθμος τερματίζει.

Διαγραφή Διαγραφή κατά σειρά των κλειδιών 1 1 90 4 5 Διαγράφουμε τον z. 19 4 5 5 90 z 1 64

Διαγραφή Διαγραφή κατά σειρά των κλειδιών 1 1 90 4 5 Διαγράφουμε τον z. 19 Περίπτωση α: Ο w γίνεται κόκκινος, και ο p μαύρος. 4 5 p 5 90 64 w

Διαγραφή Διαγραφή κατά σειρά των κλειδιών 1 1 90 4 5 Διαγράφουμε τον z. 19 Περίπτωση α: Ο w γίνεται κόκκινος, και ο p μαύρος. 4 Ο αλγόριθμος τερματίζει. 5 p 5 90 64 w

Διαγραφή Διαγραφή κατά σειρά των κλειδιών 1 1 90 4 5 Διαγράφουμε τον z. 19 4 5 5 90 z 64

Διαγραφή Διαγραφή κατά σειρά των κλειδιών 1 1 90 4 5 Διαγράφουμε τον z. 19 Περίπτωση β: Ο w γίνεται κόκκινος, ο w->right μαύρος και εκτελούμε αριστερή περιστροφή του w. 4 5 w 5 64

Διαγραφή Διαγραφή κατά σειρά των κλειδιών 1 1 90 4 5 Διαγράφουμε τον z. 19 Περίπτωση β: Ο w γίνεται κόκκινος, ο w->right μαύρος και εκτελούμε αριστερή περιστροφή του w. 4 5 νέο w 64 Περίπτωση γ: Ο w->left γίνεται μαύρος, ο w μαύρος και ο p μαύρος και εκτελούμε δεξιά περιστροφή του p. Ο αλγόριθμος τερματίζει. 5

Διαγραφή Διαγραφή κατά σειρά των κλειδιών 1 1 90 4 5 Διαγράφουμε τον z. 19 Περίπτωση β: Ο w γίνεται κόκκινος, ο w->right μαύρος και εκτελούμε αριστερή περιστροφή του w. 4 5 5 64 Περίπτωση γ: Ο w->left γίνεται μαύρος, ο w μαύρος και ο p μαύρος και εκτελούμε δεξιά περιστροφή του p. Ο αλγόριθμος τερματίζει.

Διαγραφή Διαγραφή κατά σειρά των κλειδιών 1 1 90 4 5 Ο διάδοχος του 4 είναι ο 5. Αντιγράφουμε το 5 στον κόμβο του 4. 4 19 64 5 5 z

Διαγραφή Διαγραφή κατά σειρά των κλειδιών 1 1 90 4 5 Ο διάδοχος του 4 είναι ο 5. Αντιγράφουμε το 5 στον κόμβο του 4. 5 19 64 5 5 z

Διαγραφή Διαγραφή κατά σειρά των κλειδιών 1 1 90 4 5 Ο διάδοχος του 4 είναι ο 5. Αντιγράφουμε το 5 στον κόμβο του 4. Διαγράφουμε τον z. 5 19 64 5 5 z

Διαγραφή Διαγραφή κατά σειρά των κλειδιών 1 1 90 4 5 Ο διάδοχος του 4 είναι ο 5. Αντιγράφουμε το 5 στον κόμβο του 4. Διαγράφουμε τον z. 5 p 19 64 Περίπτωση α: Ο w γίνεται κόκκινος, και ο p διπλά μαύρος. w 5

Διαγραφή Διαγραφή κατά σειρά των κλειδιών 1 1 90 4 5 Ο διάδοχος του 4 είναι ο 5. Αντιγράφουμε το 5 στον κόμβο του 4. Διαγράφουμε τον z. 5 p 19 64 Περίπτωση α: Ο w γίνεται κόκκινος, και ο p διπλά μαύρος. w 5

Διαγραφή Διαγραφή κατά σειρά των κλειδιών 1 1 90 4 5 Ο διάδοχος του 4 είναι ο 5. Αντιγράφουμε το 5 στον κόμβο του 4. Διαγράφουμε τον z. 5 19 νέο x p 64 w Περίπτωση α: Ο w γίνεται κόκκινος, και ο p διπλά μαύρος. 5 Περίπτωση α: Ο w γίνεται κόκκινος, και ο p διπλά μαύρος.

Διαγραφή Διαγραφή κατά σειρά των κλειδιών 1 1 90 4 5 Ο διάδοχος του 4 είναι ο 5. Αντιγράφουμε το 5 στον κόμβο του 4. Διαγράφουμε τον z. 5 19 νέο x p 64 w Περίπτωση α: Ο w γίνεται κόκκινος, και ο p διπλά μαύρος. 5 Περίπτωση α: Ο w γίνεται κόκκινος, και ο p διπλά μαύρος.

Διαγραφή Διαγραφή κατά σειρά των κλειδιών 1 1 90 4 5 Ο διάδοχος του 4 είναι ο 5. Αντιγράφουμε το 5 στον κόμβο του 4. Διαγράφουμε τον z. 5 19 νέο x 64 Περίπτωση α: Ο w γίνεται κόκκινος, και ο p διπλά μαύρος. 5 Περίπτωση α: Ο w γίνεται κόκκινος, και ο p διπλά μαύρος. Φθάσαμε στη ρίζα του δένδρου: Αγνοούμε την επιπλέον μονάδα μαύρου χρώματος και ο αλγόριθμος τερματίζει.

Διαγραφή Διαγραφή κατά σειρά των κλειδιών 1 1 90 4 5 Διαγράφουμε τον z. 19 5 64 5 z

Διαγραφή Διαγραφή κατά σειρά των κλειδιών 1 1 90 4 5 Διαγράφουμε τον z. 19 Περίπτωση α: Ο w γίνεται κόκκινος, και ο p μαύρος. 5 64 p w 5

Διαγραφή Διαγραφή κατά σειρά των κλειδιών 1 1 90 4 5 Διαγράφουμε τον z. 19 Περίπτωση α: Ο w γίνεται κόκκινος, και ο p μαύρος. 5 64 p Ο αλγόριθμος τερματίζει. w 5

Διαγραφή Διαγραφή κατά σειρά των κλειδιών 1 1 90 4 5 Διαγράφουμε τον z. 19 Ο αλγόριθμος τερματίζει. 5 64 z 5

Διαγραφή Διαγραφή κατά σειρά των κλειδιών 1 1 90 4 5 Διαγράφουμε τον z. 19 Ο αλγόριθμος τερματίζει. 5 64 5

Διαγραφή Διαγραφή κατά σειρά των κλειδιών 1 1 90 4 5 Διαγράφουμε τον z. 19 5 z 64 5

Διαγραφή Διαγραφή κατά σειρά των κλειδιών 1 1 90 4 5 Διαγράφουμε τον z. 19 Περίπτωση β: Ο w γίνεται κόκκινος, ο w->left μαύρος και εκτελούμε δεξιά περιστροφή του w. 5 64 w

Διαγραφή Διαγραφή κατά σειρά των κλειδιών 1 1 90 4 5 Διαγράφουμε τον z. 19 p Περίπτωση β: Ο w γίνεται κόκκινος, ο w->left μαύρος και εκτελούμε δεξιά περιστροφή του w. Περίπτωση γ: Ο w->right γίνεται μαύρος, ο w μαύρος και ο p μαύρος και εκτελούμε αριστερή περιστροφή του p. Ο αλγόριθμος τερματίζει. 5 νέο w 64

Διαγραφή Διαγραφή κατά σειρά των κλειδιών 1 1 90 4 5 Διαγράφουμε τον z. Περίπτωση β: Ο w γίνεται κόκκινος, ο w->left μαύρος και εκτελούμε δεξιά περιστροφή του w. 5 19 64 Περίπτωση γ: Ο w->right γίνεται μαύρος, ο w μαύρος και ο p μαύρος και εκτελούμε αριστερή περιστροφή του p. Ο αλγόριθμος τερματίζει.

Διαγραφή Άλλο παράδειγμα: Διαγραφή κατά σειρά των κλειδιών 5 Ο 5 έχει ένα κόκκινο παιδί. Διαγράφουμε τον 5 και κάνουμε τον μαύρο αριστερό παιδί του 19. 5 19 64 5

Διαγραφή Άλλο παράδειγμα: Διαγραφή κατά σειρά των κλειδιών 5 Ο 5 έχει ένα κόκκινο παιδί. Διαγράφουμε τον 5 και κάνουμε τον μαύρο αριστερό παιδί του 19. 19 64 5

Διαγραφή Άλλο παράδειγμα: Διαγραφή κατά σειρά των κλειδιών 5 Διαγράφουμε τον z. 19 z 64 5

Διαγραφή Άλλο παράδειγμα: Διαγραφή κατά σειρά των κλειδιών 5 Διαγράφουμε τον z. 19 p Περίπτωση 1: Ο w γίνεται μαύρος, ο p κόκκινος και εκτελούμε αριστερή περιστροφή του p. 5 64 w

Διαγραφή Άλλο παράδειγμα: Διαγραφή κατά σειρά των κλειδιών 5 Διαγράφουμε τον z. 64 Περίπτωση 1: Ο w γίνεται μαύρος, ο p κόκκινος και εκτελούμε αριστερή περιστροφή του p. p 19 Περίπτωση α: Ο w γίνεται κόκκινος, και ο p μαύρος. 5 νέο w Ο αλγόριθμος τερματίζει.

Διαγραφή Άλλο παράδειγμα: Διαγραφή κατά σειρά των κλειδιών 5 Διαγράφουμε τον z. 64 Περίπτωση 1: Ο w γίνεται μαύρος, ο p κόκκινος και εκτελούμε αριστερή περιστροφή του p. Περίπτωση α: Ο w γίνεται κόκκινος, και ο p μαύρος. Ο αλγόριθμος τερματίζει. 19 5

Διαγραφή 1. Εκτελούμε τον αλγόριθμο διαγραφής όπως σε ένα απλό δυαδικό δένδρο.. Αν προκύψει διπλά μαύρος κόμβος τότε αποκαθιστούμε τις ιδιότητες του κοκκινόμαυρου δένδρου χρησιμοποιώντας περιστροφές και αλλαγή χρωμάτων. 3. Ολοκληρώνεται σε χρόνο αναχρωματίσεις το πολύ τρεις περιστροφές