Hogyan adható át egy bináris fa az iterator verem túlcsordulásával oroszul
Üdvözlünk! Mondja meg, kérem, hogyan adjon át bináris fát egy iterátorral? (preorder. Létrehoztam egy algoritmust a folyosón a fa a megfelelő sorrendben előrendelhető és postorder. de nagyon rosszul értem, hogy tud működni egy bejáró példaként a fa. (Van jogot, hogy elfoglalják csak egy állandó értéket a memóriában, hogy van, nem tudja használni heshset, Arran lemez és egyéb szerkezetek, dinamikusan változó hosszúságú).
előre beállítva 28-án 14-kor 18:16-kor
Közvetlenül adja meg, hogy a fa csomópontjaiban hivatkozni kell a szüleire. Az iterátorban csak az aktuális csomópontra mutató hivatkozást tároljuk. A kód C ++ lesz, de könnyű újraírni Java-ban.
Ha az aktuális csomópontnak van egy bal gyermeke, akkor menjen hozzá. Ellenkező esetben, ha van megfelelő leszármazott, akkor menj hozzá. Ha a gyerekek nem, akkor menjen fel a láncot a szülők, amíg találkozunk egy csomópont, amelyhez még nem nézett a jobb gyermek, azaz egy csomópont, amelyhez jön a bal a gyógyulás folyamata. Ennek a csomópontnak a megfelelő gyermeke a következő lesz.
A fa gyökere lesz az első, amelyet át kell vinni.
Ha az aktuális csomópontnak megvannak a megfelelő altermei, akkor a következő csomópont lesz a legszélső csomópont ebben a részfelületben. Ellenkező esetben fel kell másznunk a szülők láncolatát, amíg nem találkozunk a szülővel, akinek balról fogunk jönni. Ez a szülő lesz a következő csomópont.
A fa bal szélső csomópontja lesz az elsõ.
A legegyszerűbb eset. Átmegyünk a szülő felé. Ha a bal gyermektől származunk, és van egy megfelelő gyermek, akkor menjünk a jobb oldali alsó rész bal szélső csomópontjába. Ellenkező esetben a szülőben maradunk.
Ismét a fa legöregebb csomópontja lesz az első, amely megkerül.