Egy halom keret végrehajtásának rekurzió - problémamegoldás algoritmusok és adatszerkezetek

Konvertálása integer egy string segítségével a köteg (lst_recstack)

Minden alkalommal, amikor az úgynevezett toStr. a verembe szimbólum. Visszatérve az előző példában azt látjuk, hogy miután a negyedik hívás toStr stack jelenik meg az 5. ábrán látható. Kérjük, vegye figyelembe: most már egyszerűen nyomja meg a karaktereket a verem, és összekapcsolják őket a végeredmény „1010”.

Egy halom keret végrehajtásának rekurzió - problémamegoldás algoritmusok és adatszerkezetek

5. ábra: A vonalak helyezzük a kötegben a konvertálás során.

Az előző példa ad némi ötletet, hogyan Python nyelven megvalósított rekurzív hívások. Ha hívja a funkció, hogy ellenőrizzék a verem keret elkülönített lokális változók. A visszatérési érték a végén a függvény lesz a verem tetején áll a hívó program része. A 6. ábra a verem visszatérése után a 4. sorban a kezelő számára.

Egy halom keret végrehajtásának rekurzió - problémamegoldás algoritmusok és adatszerkezetek

6. ábra: hívási verem generált toStr (10, 2).

Kérjük, vegye figyelembe, hogy a hívás toStr (2 // 2, 2) elhagyja a visszatérési értéke „1” a verem. Ezután ez a szubsztituált toStr funkció (1, 2) az expressziós "1" + convertString [2% 2]. amely elhagyja a tetején a verem „10”. Így Python hívási verem ugyanúgy működik, mint a verem, amit kifejezetten használható 4. listában. Példánkban összeadásával lista lehet gondolni a visszatérési érték a veremben, mint egy gyűjtő változó.

Szintén verem teret biztosít a felhasznált változók függvényében. Annak ellenére, hogy akkor ismét hívja ugyanazt a funkciót, minden hívás létrehoz egy új teret lokális változók.

Ha van egy jó megérteni maguknak azt az elképzelést, a verem, akkor sokkal könnyebb lesz írni a megfelelő rekurzív függvények.