Datastructuren en algoritmen
De waarden 1, 2, 3, …, 1000 worden in deze volgorde ingevoegd in een lege binaire zoekboom (zonder herbalancering). Met hoeveel knopen wordt, vanaf de wortel, vergeleken voordat 1000 wordt gevonden?
- A10
- B500
- C1000
Antwoord en toelichting tonen
Antwoord: C. 1000
Bij invoegen in oplopende volgorde wordt elke nieuwe waarde het rechterkind van het vorige maximum, zodat de boom één keten wordt die alleen naar rechts groeit (hoogte 999). 1000 staat helemaal onderaan en wordt dus vergeleken met alle 1000 knopen 1, 2, …, 1000; dat is O(n), net als een gelinkte lijst vanaf het begin doorlopen. Een gebalanceerde boom zou maar ongeveer log₂ 1000 ≈ 10 niveaus hebben. Een zelfbalancerende binaire zoekboom, zoals een AVL-boom of een rood-zwartboom, die zijn vorm bij elke invoeging en verwijdering aanpast, houdt het slechtste geval daarom op O(log n).