C ++ -rekursio (esimerkin kanssa)

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 ++ -ohjelmoinnissa

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

Kuinka tämä C ++ -rekursiohjelma toimii

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.

Mielenkiintoisia artikkeleita...