C Rekurzija (rekurzivna funkcija)

Kazalo

V tej vadnici se boste s pomočjo primera naučili pisati rekurzivne funkcije v programiranju C.

Funkcija, ki se sama pokliče, je znana kot rekurzivna funkcija. Ta tehnika je znana kot rekurzija.

Kako deluje rekurzija?

 void repeatse () (… repeatse ();…) int main () (… repeatse ();…)

Rekurzija se nadaljuje, dokler ni izpolnjen neki pogoj, da se to prepreči.

Da bi preprečili neskončno rekurzijo, lahko uporabimo stavek if … else (ali podoben pristop), kjer ena veja izvede rekurzivni klic, druga pa ne.

Primer: Vsota naravnih števil s pomočjo rekurzije

 #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; ) 

Izhod

 Vnesite pozitivno celo število: 3 vsota = 6

Sprva sum()se main()funkcija pokliče iz funkcije s številko, ki je podana kot argument.

Recimo, da je vrednost n v sum()začetku 3. Med naslednjim klicem funkcije se funkciji posreduje 2 sum(). Ta postopek se nadaljuje, dokler n ni enako 0.

Ko je n enako 0, ifpogoj ne uspe in elsedel se izvede, vrne vsoto celih števil na koncu v main()funkcijo.

Prednosti in slabosti rekurzije

Rekurzija naredi program eleganten. Če pa je zmogljivost ključnega pomena, raje uporabite zanke, saj je rekurzija običajno veliko počasnejša.

Kot rečeno, rekurzija je pomemben koncept. Pogosto se uporablja v strukturi podatkov in algoritmih. Na primer, običajno je uporabiti rekurzijo pri težavah, kot je prečkanje dreves.

Zanimive Članki...