We kunnen ook bomen modelleren waarbij een knoop meer dan twee kindknopen heeft.

👀 Voorbeeld - Meerdere kinderen

We kunnen een klasse Knoop aanmaken die lijkt op de klasse Intern maar ons toelaat een boom te modelleren met meer dan twee kindknopen (dus niet langer een binaire boom). We doen dit door de linkse en rechtse kindknoop te vervangen door een lijst van kindknopen.

class Knoop:
    def __init__(self,waarde,kinderen):
        self.waarde = waarde
        self.kinderen = kinderen

Een voorbeeld van zo’n knoop zijn de mogelijke worpen van een dobbelsteen.

dobbelen = Knoop(0, [Blad(1), Blad(2), Blad(3), Blad(4), Blad(5), Blad(6)])

🧠 Denkoefening - Binaire boom?

Denk ‘ns na, zou je met de bovenstaande klasse Knoop ook nog een binaire boom kunnen modelleren?

Hoezel wel/niet?

💻 Programmeeroefening - Perudo

perudo

Bij het spel Perudo moet je dobbelstenen werpen. De zijden van elke dobbelsteen hebben een waarde gaande van 1 tot en met 5, of een perudo.

Gebruik de klassen Knoop en Blad en een variabele perudo om een boom te modelleren die de mogelijke uitkomsten van één Perudo-dobbelsteen bevat. De waarde van de wortelknoop mag je op 0 zetten.

Print vervolgens de waarde van elk blad (in volgorde), vertrekkende van de variabele perudo.