54 lines
2.5 KiB
Plaintext
54 lines
2.5 KiB
Plaintext
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 |