Ricorsione C ++ (con esempio)

In questo tutorial, impareremo la funzione ricorsiva in C ++ e il suo funzionamento con l'aiuto di esempi.

Una funzione che chiama se stessa è nota come funzione ricorsiva. E questa tecnica è nota come ricorsione.

Utilizzo della ricorsione in C ++

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

La figura seguente mostra come funziona la ricorsione chiamando se stessa più e più volte.

Come funziona la ricorsione nella programmazione C ++

La ricorsione continua finché non viene soddisfatta una condizione.

Per prevenire la ricorsione infinita, è possibile utilizzare l'istruzione if… else (o un approccio simile) dove un ramo effettua la chiamata ricorsiva e l'altro no.

Esempio 1: fattoriale di un numero utilizzando la ricorsione

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

Produzione

 Immettere un numero non negativo: 4 Fattoriale di 4 = 24

Elaborazione del programma fattoriale

Come funziona questo programma di ricorsione C ++

Come possiamo vedere, la factorial()funzione chiama se stessa. Tuttavia, durante ogni chiamata, abbiamo diminuito il valore di n di 1. Quando n è minore di 1, la factorial()funzione alla fine restituisce l'output.

Vantaggi e svantaggi della ricorsione

Di seguito sono riportati i pro ei contro dell'utilizzo della ricorsione in C ++.

Vantaggi della ricorsione C ++

  • Rende il nostro codice più breve e più pulito.
  • La ricorsione è richiesta in problemi riguardanti strutture dati e algoritmi avanzati, come Graph e Tree Traversal.

Svantaggi della ricorsione C ++

  • Richiede molto spazio nello stack rispetto a un programma iterativo.
  • Utilizza più tempo del processore.
  • Può essere più difficile eseguire il debug rispetto a un programma iterativo equivalente.

Articoli interessanti...