Een boom is niet ingebouwd als datastructuur in Python. We definiëren zelf een klasse om binaire bomen voor te stellen.
đź‘€ Voorbeeld - Binaire boom modelleren
Een binaire boom modelleren we aan de hand van zijn interne knopen en bladeren. Dit kan op verschillende manieren maar bijvoorbeeld ook aan de hand van een klasse
Intern
en een klasseBlad
.Elke interne knoop heeft twee kindknopen links en rechts, en een waarde op de knoop (waard). Deze attributen zullen zelf van het type
knoop
zijn (dus geen strings, lists, of ints).class Intern: def __init__(self,waarde,links,rechts): self.waarde = waarde self.links = links self.rechts = rechts
Een blad heeft geen kindknopen maar wel een waarde.
class Blad: def __init__(self,waarde): self.waarde = waarde
đź’» Programmeeroefening - Een boom van jullie klassen
- Kopieer de klassen
Intern
enBlad
in de editor hieronder.- Maak twee objecten van het type
Blad
aan, met als respectievelijke waarden “5WEWI” en “5LAWI”- Maak een object van het type
Knoop
aan, met als waarde “klassen informaticawetenschappen”. Als links en rechts gebruik je de net aangemaakte blad-objecten, in alfabetische volgorde van links naar rechts.- Vertrek van het knoop-object om de waarden van de twee blad-objecten onder elkaar te printen, alfabetisch.