Megoldások a harmadik gyakorlathoz



1. Vegyünk két elemet, x-et és y-t, és vegyük azt a z csúcsot (z=x vagy z=y is lehet), amely x és y legalacsonyabban levő közös őse.
Ekkor a következő lehetőségek vannak: (a) z=x Ekkor, ha x nagyobb y-nál, akkor az y az x bal részfájában van, tehát az inorder y-t adja előbb. Ha y a nagyobb, akkor y jobbra esik, és az inorder később adja.
(b) Ha z=y, akkor hasonlóan járunk el.
(c) Ha a közös ős se nem x, se nem y, akkor ennek az közös ősnek az egyik részfájában van az egyik csúcs, a másikban a másik, jobbra a nagyobb, amit ezért az inorder később ad vissza.
Tehát bármely két csúcsot jó sorrendben ad vissza az inorder bejárás.

2. (a) Az előző feladat értelmében az inordernél nem lehetséges. A másik kettőnél viszont igen, lásd a (b) rész megoldását.
(b) Az inorder nem lehet, az első feladat miatt. Preorder esetén: mivel a preorder a gyökeret adja vissza először, a gyökérben az n áll. Ettől jobbra nem állhat semmi, mert nincsen nagyobb elem. A preorder ezután a most megvizsgált csúcs jobboldali részfájának gyökerét adja vissza, itt áll tehát az n-1. Ettől balra megint senki se lehet. Ezt a gondolatmenetet folytatva kapjuk, hogy a fa egy jobbra tartó út, amin csökkenő sorrendben vannak a pontok.
Postordernél: legutoljára a gyökeret adja vissza, tehát most a gyökér az 1. Ettől jobbra senki se állhat. Ilyen fákra az utolsó előtti visszaadott elem, vagyis most a 2, áll a gyökér balrészfájának gyökerében. Ezt továbbgondolva, a fa egy balramenő út, a pontok növő sorrendben vannak rá felrakva.

3. A teljes feladatsorban szerepel a megoldás a Keresőfák 7. feladatnál.

4. A teljes feladatsorban szerepel a megoldás a Keresőfák 19. feladatnál.

5.A teljes feladatsorban szerepel a megoldás a Keresőfák 1. feladatnál.

6. A teljes feladatsorban szerepel a megoldás a Keresőfák 4. feladatnál.

7. A teljes feladatsorban szerepel a megoldás a Keresőfák 9. feladatnál.

8. A teljes feladatsorban szerepel a megoldás a Keresőfák 15. feladatnál.

9. Elmesélem, hogy hogyan néz ki egy ilyen fa: a gyökér baloldali részfája egy teljes bináris fa, mely négy szintből áll. A gyökér jobboldali fája a következő: a részfa gyökeréből megy balra egy egy hosszúságú út, jobbra pedig egy kettő hosszúságú. Ha az egy hosszúságú balra menő utat töröljük, az AVL tulajdonság sérül a gyökér jobb fiánál és semmilyen egy darab forgatás nem segít ezen, ezt gondoljátok meg.

10. A teljes feladatsorban szerepel a megoldás a Keresőfák 22. feladatnál.

11. Gondolkodjatok, nem írom le a megoldást.