Datenstrukturen und Algorithmen
Die Werte 1, 2, 3, …, 1000 werden in dieser Reihenfolge in einen leeren binären Suchbaum eingefügt (ohne Rebalancierung). Mit wie vielen Knoten wird bei der Suche nach 1000, beginnend an der Wurzel, verglichen, bis der Wert gefunden ist?
- A10
- B500
- C1000
Antwort und Erläuterung anzeigen
Antwort: C. 1000
Werden die Werte aufsteigend eingefügt, wird jeder neue Wert zum rechten Kind des bisherigen Maximums, und der Baum wird zu einer einzigen Kette, die nur nach rechts wächst (Höhe 999). 1000 liegt ganz unten und wird daher mit allen 1000 Knoten 1, 2, …, 1000 verglichen; das ist O(n), genau wie das Durchlaufen einer verketteten Liste von vorn. Ein ausgeglichener Baum hätte nur etwa log₂ 1000 ≈ 10 Ebenen; ein selbstbalancierender binärer Suchbaum wie ein AVL-Baum oder ein Rot-Schwarz-Baum, der sich bei jedem Einfügen und Löschen umformt, hält den schlechtesten Fall daher bei O(log n).