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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

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

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

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

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

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

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

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

Δομές Δεδομένων Ενότητα 5

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ένδρα (tail, head) Γονέας Παιδί (ancestor, descendant) Φύλλο Εσωτερικός Κόµβος (leaf, non-leaf) που αποτελεί το γονέα του v.

Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort. Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012

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

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

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

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

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

Περιεχόμενα Ορισμός και λειτουργία των μηχανών Turing Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Επ. Καθ. Π. Κατσαρός Τμήμ

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

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

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

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

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

ένδρα u o Κόµβοι (nodes) o Ακµές (edges) o Ουρά και κεφαλή ακµής (tail, head) o Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) o Μονοπάτι (pat

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

1 η ΑΣΚΗΣΗ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Ακ. έτος , 5ο Εξάμηνο, Σχολή ΗΜ&ΜΥ

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΑΣΚΗΣΗ 3 Δέντρα

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

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

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

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

Δομές Δεδομένων. Ενότητα 9: Τα ΔΔΑ ως Αναδρομικές Δομές Δεδομένων-Εφαρμογή Δυαδικών Δέντρων: Κωδικοί Huffman. Καθηγήτρια Μαρία Σατρατζέμη

Δομές Δεδομένων. Ενότητα 10: Πλήρη Δυαδικά Δέντρα, Μέγιστα/Ελάχιστα Δέντρα & Εισαγωγή στο Σωρό- Ο ΑΤΔ Μέγιστος Σωρός. Καθηγήτρια Μαρία Σατρατζέμη

ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Παναγιώτα Φατούρου. Προγραμματιστική Εργασία 2 ο και 3 ο Μέρος

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

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

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

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

Ενότητα 6: Κατακερματισμός Ασκήσεις και Λύσεις

ΕΝΟΤΗΤΑ 4 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ

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

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

Πληροφορική 2. Αλγόριθμοι

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

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

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

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

ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ. ΗΥ240 - Παναγιώτα Φατούρου 1

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

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

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

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

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

Ταξινόμηση. 1. Στατιστικά Διάταξης 2. Στατιστικά σε Μέσο Γραμμικό Χρόνο. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας

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

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

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

ΔυαδικάΔΕΝΔΡΑΑναζήτησης

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

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

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

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

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

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης

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

Transcript:

ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ Δομές Δεδομένων (Εργ.) Ακ. Έτος 2017-18 Διδάσκων: Ευάγγελος Σπύρου Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης 1. Στόχος του εργαστηρίου Στόχος του δέκατου εργαστηρίου είναι η κατανόηση της δομής των δυαδικών δένδρων αναζήτησης (binary search trees), καθώς και η υλοποίηση τους σε γλώσσα C. 2. Δυαδικά Δένδρα Η δομή δεδομένων δυαδικό δένδρο αναζήτησης αποτελεί ίσως την πιο ενδιαφέρουσα δομή δένδρου. Ένα δυαδικό δένδρο αποτελείται από ένα πεπερασμένο σύνολο κόμβων. Το δένδρο είναι είτε άδειο, είτε αποτελείται από μια ρίζα και δύο άλλα δυαδικά δένδρα που ονομάζονται αριστερό και δεξιό υποδένδρο. Ο ορισμός αυτός είναι αναδρομικός. Πιο απλά μπορούμε να ορίσουμε το δυαδικό δένδρο ως ένα δένδρο κάθε κόμβος του οποίου έχει το πολύ δύο θυγατρικούς. Μια σπουδαία λειτουργία σε ένα δυαδικό δένδρο είναι η διάσχισή του (traverse). Πρόκειται για την επίσκεψη (visit) όλων των κόμβων του για μια μόνο φορά τον καθέναν. Υπάρχουν τρεις τρόποι για να πραγματοποιηθεί η διάσχιση: Προδιατεταγμένη (pre-order) Μεταδιατεταγμένη (post-order) Ενδοδιατεταγμένη (in-order) Η προδιατεταγμένη (pre-order) διάσχιση απαιτεί τις ακόλουθες διαδικασίες με την εξής συγκεκριμένη σειρά: 1. Επίσκεψη της ρίζας 2. Επίσκεψη του αριστερού υποδένδρου 3. Επίσκεψη του δεξιού υποδένδρου Τα βήματα 2. και 3. απαιτούν την επίσκεψη ενός υποδένδρου. Τα υποδένδρα αυτά διασχίζονται επαναλαμβάνοντας τις διαδικασίες 1. 3. με την ίδια σειρά. Όταν ένα υποδένδρο είναι άδειο, τότε το αντίστοιχο βήμα παραλείπεται, όπως π.χ. οι δύο τελευταίες επισκέψεις του βήματος. Αντίστοιχα η μεταδιατεταγμένη (post-order) διάσχιση ακολουθεί τα εξής βήματα: 1. Επίσκεψη του αριστερού υποδένδρου 2. Επίσκεψη του δεξιού υποδένδρου 3. Επίσκεψη της ρίζας Τέλος, η ενδοδιατεταγμένηθυγατρικό του και έπειτα τον z από τον y 1. Επίσκεψη του αριστερού υποδένδρου 2. Επίσκεψη της ρίζας

3. Επίσκεψη του δεξιού υποδένδρου 3. Δυαδικά Δένδρα Αναζήτησης Ένα δυαδικό δένδρο αναζήτησης έχει τη δομή ενός δυαδικού δένδρου. Ένα δυαδικό δένδρο μπορεί να αναπαρασταθεί μέσω μιας διασυνδεδεμένης δομής δεδομένων: κάθε κόμβος είναι ένα αντικείμενο. Περιέχει: 1. το πεδίο κλειδί (key) και ενδεχομένως παρελκόμενα δεδομένα 2. πεδία αριστερός, δεξιός, πατρικός (left, right, parent, αντίστοιχα). Κάποιοι από τους κόμβους δεν υπάρχουν, τα αντίστοιχα πεδία έχουν την τιμή NULL. Η ρίζα είναι ο μόνος κόμβος με πατρικό πεδίο NULL. Τα κλειδιά σε ένα δυαδικό δένδρο αναζήτησης είναι πάντοτε αποθηκευμένα έτσι ώστε να ικανοποιείται η ιδιότητα: Έστω x ένας κόμβος σε δυαδικό δένδρο αναζήτησης. Εάν y είναι οποιοσδήποτε κόμβος στο αριστερό υποδένδρο του x, τότε y.key x.key. Εάν y είναι οποιοσδήποτε κόμβος στο δεξιό υποδένδρο του x, τότε x.key y.key. Παραδείγματα: Το αριστερό έχει 6 κόμβους και ύψος 2, το δεξί έχει επίσης 6 κόμβους και ύψος 4. Περιέχουν ακριβώς τα ίδια κλειδιά. Το δεξί είναι λιγότερο αποτελεσματικό, καθώς ο χρόνος εκτέλεσης για τις περισσότερες πράξεις είναι ανάλογος του ύψους του δένδρου. 4. Λειτουργίες δυαδικών δένδρων αναζήτησης Εισαγωγή Εάν εισάγουμε ένα κλειδί k 0 σε ένα δυαδικό δένδρο αναζήτησης και σύμφωνα με τη βασική ιδιότητά του:

1. Εάν k 0 < root.key, αυτό θα εισαχθεί στο αριστερό υποδένδρο της ρίζας. 2. Εάν k 0 > root.key, αυτό θα εισαχθεί στο δεξί υποδένδρο της ρίζας. 3. Εάν k 0 = root.key, αυτό θα εισαχθεί στο αντίστοιχο υποδένδρο, σύμφωνα με την παραδοχή που έχουμε κάνει (προσοχή: να γίνεται με συνέπεια). Ας συνεχίσουμε με το ίδιο σκεπτικό και έστω ότι k 0 < root.key. Τότε, το k 0 θα εισαχθεί στο αριστερό υποδένδρο και πιο συγκεκριμένα: 1. Εάν k 0 < root.key, αυτό θα εισαχθεί στο αριστερό υποδένδρο του αριστερού παιδιού της ρίζας 2. Εάν k 0 > root.key, αυτό θα εισαχθεί στο δεξί υποδένδρο του αριστερού παιδιού της ρίζας 3. Εάν k 0 = root.key, αυτό θα εισαχθεί στο αντίστοιχο υποδένδρο, σύμφωνα με την παραδοχή που έχουμε κάνει Συνεπώς, για την υλοποίηση της εισαγωγής μπορούμε να χρησιμοποιήσουμε αναδρομή! Παράδειγμα: Άρα για να κάνουμε εισαγωγή σε υποδένδρο δυαδικού δένδρου αναζήτησης πρέπει να ακολουθήσουμε τα εξής βήματα: 1. Ελέγχουμε αν το υποδένδρο είναι άδειο. Αν ναι, φτιάχνουμε τον κόμβο και τον αρχικοποιούμε κατάλληλα 2. Εάν δεν είναι άδειο, και το κλειδί είναι μικρότερο της ρίζας, κάνουμε εισαγωγή στο αριστερό υποδένδρο 3. Εάν δεν είναι άδειο, και το κλειδί είναι μεγαλύτερο της ρίζας, κάνουμε εισαγωγή στο δεξί υποδένδρο Αναζήτηση Μια συνηθισμένη πράξη σε ένα δυαδικό δένδρο αναζήτησης είναι η αναζήτηση ενός στοιχείου που είναι αποθηκευμένο στο δένδρο. Εκτός από την αναζήτηση, τα δυαδικά δένδρα αναζήτησης υποστηρίζουν τις πράξεις εύρεσης ελαχίστου/μεγίστου, διαδόχου/προκατόχου.

Παράδειγμα: Ελάχιστο και Μέγιστο Για να εντοπίσουμε σε κάποιο δυαδικό δένδρο αναζήτησης το κλειδί με την ελάχιστη τιμή, μπορούμε ξεκινώντας από τη ρίζα να ακολουθήσουμε τους διαδοχικούς δείκτες right μέχρι να συναντήσουμε NULL. Με τον ίδιο τρόπο θα αναζητήσουμε το κλειδί με την ελάχιστη τιμή. Διάδοχος και Προκάτοχος Εάν όλα τα κλειδιά είναι διαφορετικά μεταξύ τους, ο διάδοχος (προκάτοχος) ενός κόμβου x είναι ο κόμβος που περιέχει το μικρότερο (μεγαλύτερο) από τα κλειδιά που είναι μεγαλύτερα (μικρότερα) από x.key. Διαγραφή Η διαδικασία για τη διαγραφή δεδομένου κόμβου z δέχεται ως είσοδο έναν δείκτη προς τον z. Υπάρχουν τρεις βασικές περιπτώσεις. 1. Ο z δεν έχει θυγατρικούς κόμβους: Τότε απλά τον αφαιρούμε και στον πατρικό του κόμβο τον αντικαθιστούμε με NULL 2. Ο z έχει μόνο έναν θυγατρικό κόμβο: Ο κόμβος αυτός παίρνει τη θέση του z, δημιουργώντας σύνδεση με τον πατρικό του z 3. Ο z έχει δύο θυγατρικούς κόμβους: Αρχικά εντοπίζουμε τον διάδοχό του, έστω y, ο οποίος πρέπει να βρίσκεται στο δεξιό υποδένδρο του z. Έπειτα ο y πρέπει να πάρει τη θέση του z. Το υπόλοιπο δεξί υποδένδρο του z γίνεται το νέο δεξιό υποδένδρο του y, αντίστοιχα και το αριστερό. Έχει σημασία εάν ο y είναι δεξιός θυγατρικός κόμβος του z. 1η Περίπτωση: Ο z δεν έχει αριστερό θυγατρικό κόμβο. Αντικαθίσταται από τον δεξιό θυγατρικό του κόμβο, ο οποίος μπορεί και να είναι NULL. Όταν είναι NULL είναι ισοδύναμη περίπτωση με το να μην έχει καθόλου θυγατρικούς. Όταν δεν είναι NULL, είναι η περίπτωση να έχει μόνο δεξιό θυγατρικό.

2η Περίπτωση: Ο z έχει μόνο αριστερό θυγατρικό κόμβο. Αντικαθίσταται από αυτόν. 3α Περίπτωση: Ο z έχει και αριστερό και δεξιό θυγατρικό κόμβο. Βρίσκουμε τον διάδοχο του z, έστω y. Αυτός βρίσκεται στο δεξί υποδένδρο του z και δεν έχει αριστερό θυγατρικό κόμβο. Θέλουμε να μετακινήσουμε τον y ώστε να αντικαταστήσει τον z. Ο y είναι ο δεξιός θυγατρικός κόμβος του z. Αντικαθιστούμε τον z με y, αφήνοντας μόνο τον δεξιό θυγατρικό κόμβο του y. 3β Περίπτωση: Ο z έχει και αριστερό και δεξιό θυγατρικό κόμβο. Βρίσκουμε τον διάδοχο του z, έστω y. Αυτός βρίσκεται στο δεξί υποδένδρο του z και δεν έχει αριστερό θυγατρικό κόμβο. Θέλουμε να μετακινήσουμε τον y ώστε να αντικαταστήσει τον z. Αν ο y βρίσκεται στο δεξιό υποδένδρο του z,

χωρίς να είναι θυγατρικός του, πρώτα αντικαθιστούμε τον y από τον θυγατρικό του και έπειτα τον z από τον y. 5. Υλοποίηση δυαδικού δένδρου αναζήτησης Να υλοποιηθεί σε γλώσσα C ένα δυαδικό δένδρο αναζήτησης που να υποστηρίζει όλες τις παραπάνω λειτουργίες.