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



Σχετικά έγγραφα
Red-black δέντρα (Κεφ. 5)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

AVL-trees C++ implementation

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Advanced Data Indexing

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

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

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

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

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

Advanced Data Indexing

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Αναπαράσταση αριθμών στο δυαδικό σύστημα. Δρ.

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

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

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

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

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

Οντοκεντρικός Προγραμματισμός

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

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

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

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος Προγραμματιστική Εργασία - 2o Μέρος

PROJECT ΣΤΟ ΜΑΘΗΜΑ "ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟΔΟΥΣ"

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

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

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

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

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

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

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

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

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

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

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

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

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

Περιεχόμενα Τι περιγράφει ένα ΣΔ ΣΔ και παραγωγές Θεωρία Υπολογισμού Ενότητα 15: Συντακτικά Δέντρα Επ. Καθ. Π. Κατσαρός Τμήμα Πληροφορικής Επ. Καθ. Π.

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

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

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

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

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

Transcript:

ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ Red- black δέντρα Εκτενείς Δομές Δεδομένων (Κεφ. ) Δομές Δεδομένων Μπαλτάς Αλέξανδρος 4 Μαρτίου 0 ampaltas@ceid.upatras.gr

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

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

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

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

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

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

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

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

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

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

Άσκηση (Inser{on) Να αποθηκευτούν οι τιμές,,,3,4 σε ένα red- black tree.. Insert(). Insert() 3. Insert() 4. Insert(3). Insert(4) 4 Μαρτίου 0

Άσκηση (Inser{on) ) Insert() 4 Μαρτίου 0 3

Άσκηση (Inser{on) ) Insert() 4 Μαρτίου 0 4

Άσκηση (Inser{on) ) Insert() 4 Μαρτίου 0

Άσκηση (Inser{on) ) Insert() 4 Μαρτίου 0 6

Άσκηση (Inser{on) ) Insert() 4 Μαρτίου 0 7

Άσκηση (Inser{on) 3) Insert() 4 Μαρτίου 0 8

Άσκηση (Inser{on) 3) Insert() 4 Μαρτίου 0 9

Άσκηση (Inser{on) 3) Insert() 4 Μαρτίου 0 0

Άσκηση (Inser{on) 3) Insert() 4 Μαρτίου 0

Άσκηση (Inser{on) 4) Insert(3) 4 Μαρτίου 0

Άσκηση (Inser{on) 4) Insert(3) 3 4 Μαρτίου 0 3

Άσκηση (Inser{on) 4) Insert(3) 3 3 4 Μαρτίου 0 4

Άσκηση (Inser{on) 4) Insert(3) 3 3 3 4 Μαρτίου 0

Άσκηση (Inser{on) ) Insert(4) 3 4 Μαρτίου 0 6

Άσκηση (Inser{on) ) Insert(4) 3 3 4 4 Μαρτίου 0 7

Άσκηση (Inser{on) ) Insert(4) 4 3 3 3 4 4 Μαρτίου 0 8

Άσκηση (Inser{on) ) Insert(4) 4 3 3 3 4 3 4 4 Μαρτίου 0 9

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

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

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

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

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

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

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

References hžp://en.wikipedia.org/wiki/red%e%80%93black_tree hžps://www.cs.usfca.edu/~galles/visualiza{on/redblack.html 4 Μαρτίου 0 37

Ευχαριστώ!? 4 Μαρτίου 0 38