Tässä opetusohjelmassa opitaan rekursiivisesta funktiosta C ++: ssa ja sen toiminnasta esimerkkien avulla.
Itsensä kutsuva toiminto tunnetaan rekursiivisena funktiona. Ja tämä tekniikka tunnetaan rekursiona.
Rekursio toimii C ++: ssa
void recurse() (… recurse();… ) int main() (… recurse();… )
Alla oleva kuva osoittaa, kuinka rekursio toimii kutsumalla itseään uudestaan ja uudestaan.
Kuinka rekursio toimii C ++ -ohjelmoinnissaRekursio jatkuu, kunnes jokin ehto täyttyy.
Äärettömän toistumisen estämiseksi, jos… muuta käskyä (tai vastaavaa lähestymistapaa) voidaan käyttää, kun yksi haara soittaa rekursiivisen puhelun ja toinen ei.
Esimerkki 1: Rekursiota käyttävän luvun kerroin
// Factorial of n = 1*2*3*… *n #include using namespace std; int factorial(int); int main() ( int n, result; cout <> n; result = factorial(n); cout << "Factorial of " << n << " = " < 1) ( return n * factorial(n - 1); ) else ( return 1; ) )
Tuotos
Syötä ei-negatiivinen luku: 4 Kerroin 4 = 24
Factorial-ohjelman työskentely
Kuinka tämä C ++ -rekursiohjelma toimiiKuten näemme, factorial()
toiminto kutsuu itseään. Jokaisen puhelun aikana olemme kuitenkin laskeneet n: n arvoa 1
. Kun n on pienempi 1
, factorial()
funktio palauttaa lopputuloksen.
Rekursioiden edut ja haitat
Alla on rekursiota C ++: ssa käyttävän edut ja haitat.
C ++ -rekursioedut
- Se tekee koodistamme lyhyemmän ja puhtaamman.
- Rekursiota tarvitaan tietorakenteisiin ja edistyneisiin algoritmeihin liittyvissä ongelmissa, kuten Kuvaaja ja Puun kulku.
C ++ -rekurion haitat
- Se vie paljon pinotilaa verrattuna iteratiiviseen ohjelmaan.
- Se käyttää enemmän prosessorin aikaa.
- Virheenkorjaus voi olla vaikeampaa kuin vastaava iteratiivinen ohjelma.