Pszeudókód nem rekurzív végrehajtását fahossznak isBST

szavazat
4

Én vagyok a folyamat átalakításának rekurzív függvény egy BST nem rekurzív, hogy segítsen felkészülni egy interjúra. Eddig Rájöttem előrendelésre, inorder, postorder, keresés, törlés, helyezze, és átalakítjuk a BST cirkuláris láncolt lista. Én gondjai kitalálni, hogyan kell használni verem vagy sorokat, hogy a magassága és megtalálni, ha ez egy BST. Minden tipp lenne nagyon méltányol. Nem keresem a kódot, de a logikája a kódot.

A kérdést 14/09/2011 03:03
a forrás felhasználó
Más nyelveken...                            


2 válasz

szavazat
5

Kezdetnek jó munkát felkészülés interjúk, mint ez! Remélem, hogy te, szórakoztató játék körül ezeket az algoritmusokat.

Kezdjük azzal a feladattal, megpróbáljuk meghatározni, ha a bináris fa egy BST. Az egyik módja ennek az, hogy nem egy inorder séta a fa és ellenőrizze, hogy az elemek rendezett sorrendben. Ez igaz akkor, ha a fa egy BST. Mivel már van kódot csinálni egy inorder séta eleme a fa, akkor képesnek kell lennie arra, hogy könnyen alkalmazkodni a kódot, hogy ellenőrizze, ha az elemeket, hogy jön ki a inorder séta vannak sorolva, nyomon követését, az utolsó elem láttál a inorder séta, majd összehasonlítjuk az egyes elemek által generált az előző elem. Ha a kettő elromlott, a fa nem egy BST.

Annak megállapításához, a fa magasságát, az egyik lehetőség az lenne, hogy bármelyik kereséseket kitaláltunk eddig (előrendelhető, postorder, inorder), és nyomon követheti a magassága a köteg minden ponton. Az ötlet az, hogy mivel a verem mindig nyomon követni az útját vissza bármely csomóponttól egészen a gyökér, akkor egyszerűen járni a fát, és rögzíti a legmélyebb, hogy valaha is látta, hogy a verem lesz. Ez a maximális mélység, akkor a fa magasságát.

Remélem ez segít! És sok sikert interjúk!

Válaszolt 14/09/2011 03:17
a forrás felhasználó

szavazat
0

Ahhoz, hogy megtalálja a fa magasságát, akkor használja a Morris bejárás [O (n) idő]].

Ha szeretné ellenőrizni, hogy ez egy érvényes BST, nem egy inorder séta a fa. Mozgassa a egy tömbbé. Ellenőrizze, hogy a tömb van rendezve, vagy nem érvényesíti a BST.

Válaszolt 14/09/2011 09:33
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more