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 klasse Blad.

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 en Blad 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.