06/032003Tom Van Damme Bomen in LOGO
06/032003Tom Van Damme Wat is een boom? Bomen als hiërarchische gegevensstructuur Wereld Gent België Brussel China Azië Europa Frankrijk Beijing Avignon Kortrijk Root Node Leaf Node Subtree
06/032003Tom Van Damme Een boom is een lijst Het eerste element is het gegeven van de node. De volgende n elementen zijn de kind-bomen => make "voorbeeldboom [gegeven [...] [...]...] Opdracht : implementeer volgende functies: to gegeven :boom to kinderen :boom to bladp :boom Bomen in LOGO
06/032003Tom Van Damme to gegeven :boom op first :boom end to kinderen :boom op butfirst :boom end to bladp :boom op emptyp children :boom end Bomen in LOGO : oplossingen
06/032003Tom Van Damme to maakwereldboom Make "wereldboom ~ [wereld [Europa [Belgie [Gent] [Kortrijk] [Brussel]] [Frankrijk [Avignon]]] [Azie [China [Beijing]]]] end Bomen in LOGO : maken van de boom
06/032003Tom Van Damme Wat we willen: zoekinboom "Kortrijk :wereldboom Resultaat: [wereld Europa Belgie Kortrijk] zoekinboom "Beijing :wereldboom Resultaat: [wereld Azie China Beijing] zoekinboom "Belgie :wereldboom Resultaat: [wereld Europa Belgie] Hoe? recursief zoeken in de boom én in de kinderen van een boom Bomen in LOGO : zoeken in de boom
06/032003Tom Van Damme to zoekinboom :gezocht :boom if emptyp :boom [op []] ifelse equalp gegeven :boom :gezocht ~ [op (list :gezocht)]~ [ifelse bladp :boom [op []]~ [make "tmp zoekinkinderen :gezocht kinderen :boom ifelse emptyp :tmp [op []] ~ [op sentence gegeven :boom :tmp] ] end Bomen in LOGO : zoeken in de boom oplossing
06/032003Tom Van Damme to zoekinkinderen :gezocht :kinderen if emptyp :kinderen [op []] op sentence (zoekinboom :gezocht first :kinderen)(zoekinkinderen :gezocht butfirst :kinderen) end Bomen in LOGO : zoeken in de boom oplossing