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.

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

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.