Wat is Binaire zoekboom (binary search tree)?
Binaire boom waarin voor elke knoop alle waarden in de linkerdeelboom kleiner en alle waarden in de rechterdeelboom groter zijn dan de knoop. Zoeken, invoegen en verwijderen kosten tijd die evenredig is met de hoogte van de boom, en een in-orderdoorloop bezoekt de waarden in oplopende volgorde.
Japanse benaming: 二分探索木
“Binaire zoekboom (binary search tree)” komt voor in 4 oefenvragen uit 1 onderwerpen, bijv. Datastructuren en algoritmen.
Vakgebied: Datastructuren en algoritmen
Scheve bomen en zelfbalancerende bomen
Een binaire zoekboom met n knopen heeft een hoogte van ongeveer log₂ n als hij gebalanceerd is, maar waarden invoegen in gesorteerde volgorde, zoals 1, 2, 3, …, levert één keten op die naar één kant groeit, met hoogte n−1. Zoeken kost dan O(n), net als bij een gelinkte lijst. AVL-bomen en rood-zwartbomen zijn zelfbalancerende binaire zoekbomen die hun vorm bij elke invoeging en verwijdering aanpassen met bewerkingen die rotaties heten, en zo de hoogte op O(log n) houden; ze worden gebruikt voor de geordende dictionary's en sets van veel programmeertalen.
Doorloopvolgorden
Manieren om elke knoop van een boom te bezoeken zijn pre-order, dat elke knoop eerst bezoekt; in-order, dat de linkerdeelboom, de knoop en dan de rechterdeelboom bezoekt; post-order, dat eerst de kinderen bezoekt; en breedte-eerst (level-order), dat de boom niveau voor niveau bezoekt. Een in-orderdoorloop van een binaire zoekboom somt de waarden in oplopende volgorde op en levert zo een gesorteerde lijst. Een post-orderdoorloop van een expressieboom geeft omgekeerde Poolse notatie.
Veelgestelde vragen
Wat is het verschil tussen een binaire zoekboom en een heap?
Een binaire zoekboom volgt de regel „kleiner links, groter rechts”, dus hij kan elke waarde zoeken en waarden op volgorde opsommen. Een binaire heap volgt alleen de regel „een ouder is groter (of kleiner) dan zijn kinderen”, dus hij kan snel het maximum (of minimum) verwijderen, maar is niet geschikt om willekeurige waarden te zoeken.
Wanneer gebruik je een binaire zoekboom en wanneer een B-boom?
In het geheugen worden zelfbalancerende binaire zoekbomen gebruikt; voor opslag die in blokken wordt gelezen, zoals schijven en SSD's, worden B-bomen (B+-bomen) gebruikt, die de boom laag houden door veel sleutels in elke knoop te zetten.