C Rekursion (rekursiv funktion)

Innehållsförteckning

I denna handledning lär du dig att skriva rekursiva funktioner i C-programmering med hjälp av ett exempel.

En funktion som kallar sig själv är känd som en rekursiv funktion. Och den här tekniken är känd som rekursion.

Hur fungerar rekursion?

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

Rekursionen fortsätter tills något villkor är uppfyllt för att förhindra det.

För att förhindra oändlig rekursion, om … annars uttalande (eller liknande tillvägagångssätt) kan användas där en gren gör det rekursiva samtalet, och andra inte.

Exempel: Summan av naturliga tal som använder rekursion

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

Produktion

 Ange ett positivt heltal: 3 summa = 6

Ursprungligen sum()anropas från main()funktionen med nummer skickat som ett argument.

Antag att värdet på n inuti sum()är 3 initialt. Under nästa funktionsanrop skickas 2 till sum()funktionen. Denna process fortsätter tills n är lika med 0.

När n är lika med 0, ifmisslyckas villkoret och elsedelen exekveras och återför summan av heltal till slut main().

Fördelar och nackdelar med rekursion

Rekursion gör programmet elegant. Men om prestanda är viktig, använd slingor istället eftersom rekursion vanligtvis är mycket långsammare.

Med detta sagt är rekursion ett viktigt begrepp. Det används ofta i datastruktur och algoritmer. Till exempel är det vanligt att använda rekursion i problem som trädkorsning.

Intressanta artiklar...