Csomopont osztály - Az egyes csomópontok adatait Adat és gyermekeit Gyermekek tárolja. - A Gyermekek egy lista, amely tetszőleges számú gyermek csomópontot tartalmazhat. Fa osztály - A fa gyökerét Gyoker tarolja. - Tartalmaz egy rekurzív mélységi bejárás metódust MelysegiBejaras, amely a gyökérből kiindulva végigmegy az összes csomóponton. - A keresés Keres szintén rekurzív, és megvizsgálja, hogy egy adott adat szerepel-e a fában. Program osztály - Egy családfa példáját mutatja be, amelyben a "Nagyszülő" a gyökércsomó. - Gyermekeket és unokákat ad a fához - Mélységi bejárást végez, majd keres bizonyos csomópontokat. Bináris fa Olyan fa, ahol minden csúcsnak legfeljebb két leszármazottja lehet. Szigorú értelemben vett bináris fáról beszélünk, ha a bináris fában minden adatelemnek 0 vagy 2 rákövetkezője van. Láncolt ábrázolás A bináris fa láncolt ábrázolásban mutatók/indexek valósítják meg a rákövetkezési és megelőzési relációkat. Bináris fával végezhető műveletek - Létrehozás: üres fa - Bővítés: egy elemmel vagy egy részfával, általában levélelemnél - Törlés: részfát vagy egy elemet utóbbi esetben a fát a lgtöbb esetben újra kell szervezni (hogy továbbra is fa maradjon) - Csere: megengedett - Rendezés: nincs - Keresés, elérés és feldolgozás: a bejárás algoritmusa alapján - Bejárás: szokás szerint olyan algoritmus, amelynek segítségével a bináris fa elemeit leképezzük egy sorra (preorder, inorder vagy postorder módon) Bináris fa bejárása Bejárás: az adatszerkezet valamennyi elemének egyszeri elérése (feldolgozása) A fa bejárása a pontjainak módszeres vizsgálatát jelenti, amelynek során minden pontot egyszer és csakis egyszer látogatunk meg (gyökérvizit). Mivel a láncolt lsitával ellentétben egy elemből több irányba is lehet lépni, többféle bejárás is elképzelhető. A csomópontokban található adatok (tartalom, bal, jobb) feldolgozásának sorrendje alapján három fő változat különböztethető meg (ezen belül a bal és jobb megcserélhető): - Preorder bejárás - Inorder bejárás - Postorder bejárás Gyökérből legfeljebb két részfa ágazik: baloldali és jobboldali részfa Bejárása Gyökérkezdő (preorder) a b d c e g h i j f Gyökérközepű (inorder) d b a g e i h j c f Gyökérvégző (postorder) d b g i j h e f c a