C Recursie (recursieve functie)

Inhoudsopgave

In deze tutorial leer je aan de hand van een voorbeeld recursieve functies schrijven in C-programmering.

Een functie die zichzelf aanroept, staat bekend als een recursieve functie. En deze techniek staat bekend als recursie.

Hoe recursie werkt?

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

De recursie gaat door totdat aan een voorwaarde is voldaan om dit te voorkomen.

Om oneindige recursie te voorkomen, kan de if… else-instructie (of vergelijkbare benadering) worden gebruikt wanneer de ene branch de recursieve aanroep doet en de andere niet.

Voorbeeld: som van natuurlijke getallen met recursie

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

Uitvoer

 Voer een positief geheel getal in: 3 som = 6

In eerste instantie wordt de sum()aangeroepen vanuit de main()functie met nummer doorgegeven als argument.

Stel dat de waarde van n binnenin sum()aanvankelijk 3 is. Tijdens de volgende functieaanroep wordt 2 doorgegeven aan de sum()functie. Dit proces gaat door totdat n gelijk is aan 0.

Als n gelijk is aan 0, ifmislukt de voorwaarde en wordt het elsedeel uitgevoerd en retourneert de som van gehele getallen uiteindelijk naar de main()functie.

Voordelen en nadelen van recursie

Recursie maakt het programma elegant. Als de prestaties echter van vitaal belang zijn, gebruikt u in plaats daarvan loops, aangezien de recursie meestal veel langzamer is.

Dat gezegd hebbende, recursie is een belangrijk concept. Het wordt vaak gebruikt in datastructuren en algoritmen. Het is bijvoorbeeld gebruikelijk om recursie te gebruiken bij problemen zoals het doorkruisen van bomen.

Interessante artikelen...