Récursivité
-
Une fonction est dite récursive si elle s'appelle elle-même au cours de son exécution.
-
La condition d'arrêt située au début de toute fonction récursive, définit le cas de base et permet d'arrêter la chaîne des appels.
-
Si un programme récursif peut se traduire dans un style itératif (avec de simples boucles), et inversement, aborder de manière récursive un problème est parfois plus facile.
-
Il est essentiel de comprendre le déroulement d'une fonction récursive. Par exemple, si on appelle
factorielle(5)
, cette fonction devra attendre le résultat defactorielle(4)
avant de pouvoir renvoyer son propre résultat. Et de la même manière,factorielle(4)
devra à son tour attendre le résultat defactorielle(3)
. Et ainsi de suite, jusqu'au cas de base.
-
Il est courant de partir d'une définition mathématique récursive et de la traduire en code :
-
Un arbre d'appels permet de visualiser l'ordre des appels récursifs :