C Rekurze (rekurzivní funkce)

Obsah

V tomto kurzu se naučíte psát rekurzivní funkce v programování C pomocí příkladu.

Funkce, která se sama nazývá, se nazývá rekurzivní funkce. A tato technika je známá jako rekurze.

Jak funguje rekurze?

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

Rekurze pokračuje, dokud není splněna nějaká podmínka, aby se tomu zabránilo.

Aby se zabránilo nekonečné rekurzi, lze použít příkaz … else (nebo podobný přístup), kde jedna větev provádí rekurzivní volání a jiná nikoli.

Příklad: Součet přirozených čísel pomocí rekurze

 #include int sum(int n); int main() ( int number, result; printf("Enter a positive integer: "); scanf("%d", &number); result = sum(number); printf("sum = %d", result); return 0; ) int sum(int n) ( if (n != 0) // sum() function calls itself return n + sum(n-1); else return n; ) 

Výstup

 Zadejte kladné celé číslo: 3 součet = 6

Zpočátku sum()se volá z main()funkce s číslem předaným jako argument.

Předpokládejme, že hodnota n uvnitř sum()je zpočátku 3. Během dalšího volání funkce se do sum()funkce předá 2 . Tento proces pokračuje, dokud n není rovno 0.

Když n je rovno 0, ifpodmínka se nezdaří a elsečást se provede, čímž se nakonec vrátí součet celých čísel do main()funkce.

Výhody a nevýhody rekurze

Díky rekurzi je program elegantní. Pokud je však výkon zásadní, použijte místo toho smyčky, protože rekurze je obvykle mnohem pomalejší.

Rekurze je tedy důležitý koncept. Často se používá v datové struktuře a algoritmech. Například je běžné používat rekurzi v problémech, jako je procházení stromu.

Zajímavé články...