Françoise Greffier -Licence
informatique - Besançon
RECURSIVITE
Licence Informatique
Algorithmique sur les données
Françoise Greffier
Françoise Greffier -Licence
informatique - Besançon
Sommaire
Introduction et intérêt
Pile des contextes (Factorielle)
Arbre des appels (tours de Hanoi)
Elimination de la récursivité
Elimination : premier modèle
Elimination : deuxième modèle
Elimination : troisième modèle
Françoise Greffier -Licence
informatique - Besançon
LA RECURSIVITE
Définition
La récursivité est un procédé pour lequel dans une définition apparaît
la définition elle même.
Quand ?
Suite récurrentes (exemple : factorielle)
Type récursifs
Liste non vide = premier + liste
Arbre binaire = racine + sous-arbre droit + sous-arbre gauche
Définitions récursives
Grammaire : <E> ::= + (<E>,<E>)
<E> ::= * (<E>,<E>)
<E> := Nombre || identificateur
Françoise Greffier -Licence
informatique - Besançon
FONCTION FACTORIELLE
int fact (int n){
if (n = = 0) return 1;
else return (n * fact (n-1));
}
Règle récursive : fact(n) = n * fact (n-1)
Condition d’arrêt : fact (0) =1
Françoise Greffier -Licence
informatique - Besançon
PILE DES CONTEXTES
A chaque appel d’une fonction récursive, les
arguments transmis par valeur et les
variables locales sont empilés.
Ces valeurs constituent le contexte
d’activation de l’appel.
A chaque retour le contexte situé en haut de
la pile est disponible
Les contextes sont indépendants
1 / 29 100%