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.

Kapcsolódó cikkek