Boom (datastructuur)

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken

Een tree of boomstructuur is een datastructuur in de informatica die een bijzonder geval van een graaf is. Hij bestaat uit een knoop(punt) of vertex (Engels: node) die de stam (ook wel wortel, Eng.: root) genoemd wordt, en die het ingangspunt is voor de in de boom opgeslagen informatie. In deze wortelknoop zitten nul of meer pointers die naar andere knooppunten verwijzen. Ieder knooppunt behalve de wortel heeft precies een ouder (Eng.: parent node) en nul of meer kinderen (Eng.: child nodes). De verwijzingen gaan dus nooit tussen de kinderen onderling maar alleen van ouder naar kind; in een wat uitgebreidere versie eventueel ook van kind naar ouder (bidirectionele graaf). In een tree bestaan geen cirkelpaden en is er altijd precies 1 pad van de wortel naar een willekeurige knoop. Een knoop die zelf geen kinderen heeft noemt men een blad (Eng.: leaf).

Binaire boom[bewerken]

Een voorbeeld van een ongeordende binaire boom

Een binaire of dichotome boom is een boomstructuur waarbij iedere knoop maximaal twee kinderen heeft. Een complete binaire boom is een boomstructuur waarin ieder blad zich op gelijke afstand bevindt van de wortelknoop. Iedere boom kan op vrij eenvoudige wijze in een binaire boom worden getransformeerd. Ook voor iedere graaf die geen niet-verbonden vertices heeft kan een boom worden gemaakt. Een geordende boom is een boomstructuur waarbij de kinderen een gedefinieerde volgorde hebben.

Algoritmen[bewerken]

Voor boomstructuren bestaan een groot aantal goed bekende algoritmen, bijvoorbeeld om iets in een geordende boom op te zoeken, om een nieuw element in een geordende boom aan te brengen of te verwijderen, of om een niet-geordende boom te sorteren (om te zetten in een geordende boom). Als een boom specifieke eigenschappen heeft, kunnen deze algoritmen vaak nog verfijnd (en dus meestal ook versneld) worden. Bomen kunnen gebruikt worden om allerlei problemen in de informatica voor te stellen.

Zie ook[bewerken]