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.

Rekursio 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

Kuten 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.