Récursivité C ++ (avec exemple)

Dans ce tutoriel, nous allons découvrir la fonction récursive en C ++ et son fonctionnement à l'aide d'exemples.

Une fonction qui s'appelle elle-même est appelée fonction récursive. Et cette technique est connue sous le nom de récursivité.

Fonctionnement de la récursivité en C ++

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

La figure ci-dessous montre comment fonctionne la récursivité en s'appelant encore et encore.

Fonctionnement de la récursivité dans la programmation C ++

La récursion continue jusqu'à ce qu'une condition soit remplie.

Pour éviter une récursion infinie, l'instruction if… else (ou une approche similaire) peut être utilisée là où une branche effectue l'appel récursif et l'autre non.

Exemple 1: Factorielle d'un nombre utilisant la récursivité

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

Production

 Entrez un nombre non négatif: 4 Factorielle de 4 = 24

Fonctionnement du programme factoriel

Fonctionnement de ce programme de récursivité C ++

Comme nous pouvons le voir, la factorial()fonction s'appelle elle-même. Cependant, à chaque appel, nous avons diminué la valeur de n de 1. Lorsque n est inférieur à 1, la factorial()fonction renvoie finalement la sortie.

Avantages et inconvénients de la récursivité

Voici les avantages et les inconvénients de l'utilisation de la récursivité en C ++.

Avantages de la récursivité C ++

  • Cela rend notre code plus court et plus propre.
  • La récursivité est requise dans les problèmes concernant les structures de données et les algorithmes avancés, tels que Graph et Tree Traversal.

Inconvénients de la récursivité C ++

  • Cela prend beaucoup d'espace de pile par rapport à un programme itératif.
  • Il utilise plus de temps processeur.
  • Il peut être plus difficile à déboguer qu'un programme itératif équivalent.

Articles intéressants...