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 klasseIntern
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
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
enBlad
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.