C ++ rekurzió (példával)

Ebben az oktatóanyagban megismerjük a C ++ rekurzív függvényét és annak működését példák segítségével.

Az önmagát hívó függvény rekurzív függvényként ismert. Ezt a technikát rekurziónak nevezik.

Rekurzió működése C ++ nyelven

 void recurse() (… recurse();… ) int main() (… recurse();… )

Az alábbi ábra megmutatja, hogyan működik a rekurzió azáltal, hogy újra és újra felhívja magát.

Hogyan működik a rekurzió a C ++ programozásban

A rekurzió addig folytatódik, amíg valamilyen feltétel nem teljesül.

A végtelen rekurzió megakadályozása érdekében, ha… más utasítás (vagy hasonló megközelítés) használható, ahol az egyik ág rekurzív hívást kezdeményez, a másik pedig nem.

1. példa: Egy rekurziót használó szám tényezője

 // Factorial of n = 1*2*3*… *n #include using namespace std; int factorial(int); int main() ( int n, result; cout <> n; result = factorial(n); cout << "Factorial of " << n << " = " < 1) ( return n * factorial(n - 1); ) else ( return 1; ) )

Kimenet

 Adjon meg egy nem negatív számot: 4 4 = 24 tényező

A Factorial program működése

Hogyan működik ez a C ++ rekurziós program

Mint láthatjuk, a factorial()függvény önmagát hívja. Minden hívás során azonban csökkentettük n értékét 1. Ha n kisebb 1, akkor a factorial()függvény végül visszaadja a kimenetet.

A rekurzió előnyei és hátrányai

Az alábbiakban bemutatjuk a rekurzió C ++ nyelven történő használatának előnyeit és hátrányait.

A C ++ rekurzió előnyei

  • Rövidebbé és tisztábbá teszi kódunkat.
  • Rekurzióra van szükség az adatszerkezetekkel és a fejlett algoritmusokkal kapcsolatos problémákban, mint például a Graph és a Tree Traversal.

A C ++ rekurzió hátrányai

  • Nagyon sok veremterületet igényel egy iteratív programhoz képest.
  • Több processzort igényel.
  • Nehezebb lehet a hibakeresés egy ekvivalens iteratív programhoz képest.

érdekes cikkek...