2.7.5 💡 Bomen modelleren in Python

class Intern:
    def __init__(self,waarde,links,rechts):
        self.waarde = waarde
        self.links = links
        self.rechts = rechts

class Blad:
    def __init__(self,waarde):
        self.waarde = waarde

wewi = Blad("5WEWI")
lawi = Blad("5LAWI")

klassen = Intern("klassen informaticawetenschappen", lawi, wewi)
print(klassen.links.waarde)
print(klassen.rechts.waarde)

2.7.6 🧠 Twee munten opwerpen

class Intern:
    def __init__(self,waarde,links,rechts):
        self.waarde = waarde
        self.links = links
        self.rechts = rechts

class Blad:
    def __init__(self,waarde):
        self.waarde = waarde

# Maak de objecten aan

worp2kop = Blad("kop")
worp2munt = Blad("munt")

worp1kop = Intern("kop", worp2kop, worp2munt)
worp1munt = Intern("munt", worp2kop, worp2munt)

wortel = Intern("begin", worp1kop, worp1munt)

# Simuleer 2 keer kop, vertrekkende van de wortel

print(wortel.links.waarde)
print(wortel.links.links.waarde)

2.7.7 💡 Een wortel is waardeloos

class Wortel:
    def __init__(self,links,rechts):
        self.links = links
        self.rechts = rechts

2.7.8 🧠 Aan en uit

class Intern:
    def __init__(self,waarde,links,rechts):
        self.waarde = waarde
        self.links = links
        self.rechts = rechts

class Blad:
    def __init__(self,waarde):
        self.waarde = waarde

class Wortel:
    def __init__(self,links,rechts):
        self.links = links
        self.rechts = rechts

# Maak het object aan

schakelaars = Wortel(
    Intern('Aan',
        Blad(('Aan','Aan')),
        Blad(('Aan','Uit'))
        ),
    Intern('Uit',
        Blad(('Uit','Aan')),
        Blad(('Uit','Uit'))
    )
)

# Print de vier combinaties

print(schakelaars.links.links.waarde)
print(schakelaars.links.rechts.waarde)
print(schakelaars.rechts.links.waarde)
print(schakelaars.rechts.rechts.waarde)

🧠 Boom van diepte 2

class Intern:
    def __init__(self,waarde,links,rechts):
        self.waarde = waarde
        self.links = links
        self.rechts = rechts

class Blad:
    def __init__(self,waarde):
        self.waarde = waarde

# Maak het object aan

boom = Intern(0,
    Intern(2,
        Blad(4),
        Blad(3)
        ),
    Intern(1,
        Blad(3),
        Blad(2)
    )
)

# Print de vier combinaties

print(boom.links.links.waarde)
print(boom.links.rechts.waarde)
print(boom.rechts.links.waarde)
print(boom.rechts.rechts.waarde)

2.7.10 🧠 Meer kinderen

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

class Blad:
    def __init__(self,waarde):
        self.waarde = waarde

perudo = Knoop(0, [Blad(1), Blad(2), Blad(3), Blad(4), Blad(5), Blad('Perudo')])

print(perudo.kinderen[0].waarde)
print(perudo.kinderen[1].waarde)
print(perudo.kinderen[2].waarde)
print(perudo.kinderen[3].waarde)
print(perudo.kinderen[4].waarde)
print(perudo.kinderen[5].waarde)