É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.
Pszeudókód nem rekurzív végrehajtását fahossznak isBST
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!
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.













