Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Rekurzívne funkcie v jazyku C

Jeden malý -použitý pojem v C je funkcia rekurzia . Rekurzívne funkcie je jednoducho funkcia , ktorá volá sama seba . Rekurzívne funkcie môže byť užitočná v určitých funkcií , ale môže zvyčajne byť nahradené pomocou slučky . Účel rekurzívne funkcie

rekurzívne funkcie môže byť použitá , ak je potrebné , ktoré je potreba vykonávať opakovane na súbor dát . Napríklad , môže rekurzívne funkcie opakovane vykonávať matematické operácie na číselnú hodnotu , kým je splnená podmienka .
Vytvorenie rekurzívne funkcie

Každá funkcia , ktorá volá sama seba je rekurzívne funkcie . Žiadne špeciálne požiadavky na funkciu volať sám , to môže urobiť tak , cait by volať inú funkciu . Napríklad , nasledujúci je rekurzívne funkcie pre výpočet ďalšie číslo vo Fibonacciho postupnosti :

dlho fibo ( long n)

{

if (n < = 2 )

{

vráti 1 ;

}

iného

{

návrat fib (n - 1 ) + fib (n - 2 ) ;

}

}
Problémy s rekurzia

rekurzia má niekoľko možných problémov , ktoré by mali byť považované za pred zápisom rekurzívne funkciu . Rekurzívne funkcie môže byť veľmi neefektívne , a to nielen tam je hromada réžia z opakovane volanie funkcie , môže rekurzívne funkcie ľahko skončiť s exponenciálnym prevádzkovej doby v závislosti na tom , ako sú písané . Rekurzívne funkcie spustiť aj riziko spôsobenia pretečeniu zásobníka v prípade , že počet rekurzívnych volaní je príliš vysoká .
ClipArt rekurzia Vs . Iterácie

Väčšina rekurzívne funkcie môžu byť realizované ako non - rekurzívne funkcie , ktorá používa iteračné slučku . To inklinuje byť účinnejšie a bezpečnejšie , ale v niektorých prípadoch môže byť ťažké písať a čítať .

Rekurzívny funkcie sú najčastejšie používané pri prechádzaní stromovú štruktúru podobnú , alebo pri použití iterácia by fungovať oveľa zložitejšie . Vo väčšine ostatných prípadov , iterácie by mal byť používaný namiesto toho .

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené