ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102: Τεχνολογία Λογισμικού Ι Διαφάνειες παρουσίασης #12 4 Δυαδικά δένδρα αναζήτησης
2Νίκος ΠαπασπύρουΛΟΓ102: Τεχνολογία Λογισμικού Ι Δυαδικά δένδρα αναζήτησης(i) u Binary search trees u Δυαδικά δένδρα με τις παρακάτω ιδιότητες για κάθε κόμβο: l όλοι οι κόμβοι του αριστερού παιδιού έχουν τιμές μικρότερες ή ίσες της τιμής του κόμβου l όλοι οι κόμβοι του δεξιού παιδιού έχουν τιμές μεγαλύτερες ή ίσες της τιμής του κόμβου
3Νίκος ΠαπασπύρουΛΟΓ102: Τεχνολογία Λογισμικού Ι Δυαδικά δένδρα αναζήτησης(ii) u Τα δυαδικά δένδρα αναζήτησης διευκολύνουν την αναζήτηση στοιχείων σε αυτά u Αναδρομική αναζήτηση l αν η τιμή που ζητείται είναι στη ρίζα, βρέθηκε l αν είναι μικρότερη από την τιμή της ρίζας, αρκεί να αναζητηθεί στο αριστερό παιδί l αν είναι μεγαλύτερη από την τιμή της ρίζας, αρκεί να αναζητηθεί στο δεξί παιδί
4Νίκος ΠαπασπύρουΛΟΓ102: Τεχνολογία Λογισμικού Ι Δυαδικά δένδρα αναζήτησης(iii) u Αναζήτηση TreeNode * treeSearch (tree t, int key) { if (t == NULL) return NULL; // not found if (t->data == key) return t; // found if (t->data < key) return treeSearch(t->left, key); else return treeSearch(t->right, key); }