Ένα Δυαδικό Δέντρο Αναζήτησης (Binary Search Tree - BST ή Ordered Tree) είναι ένα ταξινομημένο δέντρο έτσι ώστε για κάθε κόμβο, όλοι οι κόμβοι στο αριστερό του υποδέντρο να είναι μικρότεροι σε τιμή και όλοι οι κόμβοι στο δεξί του υποδέντρο να είναι μεγαλύτεροι.
Έλεγχος αν υπάρχει (exists) ένα στοιχείο σε δυαδικό δέντρο. Πως;
Γράψτε τη συνάρτηση
int exists(Tree t, int value);
που επιστρέφει 1 αν η τιμή value υπάρχει στο BST t και 0 αλλιώς, με χρόνο
\(O(\log n)\) για ισορροπημένο δέντρο.
Σε κάθε κόμβο, η σύγκριση του value με την τιμή του κόμβου σας λέει σε ποιο από τα δύο υποδέντρα μπορεί να βρίσκεται η τιμή· το άλλο δεν χρειάζεται να το ψάξετε. Μην ξεχάσετε τη βασική περίπτωση του άδειου δέντρου.
Αριθμός στον οδηγό: Α22.2
(στο κεφάλαιο) ·
Μόνιμο αναγνωριστικό: slides-lec22-bst-exists ·
Σύνδεσμος: https://progintro.github.io/study/questions/slides/slides-lec22-bst-exists.html ·
Markdown (GitHub)