Académique Documents
Professionnel Documents
Culture Documents
Chapitre 2
La Rcursivit
Dfinition rcursive : cest le cas lorsque le dfinition dune partie dun tout fait
appel au tout.
Algorithme rcursif : cest un algorithme qui comporte un appel lui mme.
Enregistrement personne
Nom : chane de caractres
Prnom : chane de caractres
Age : entier
Parent : personne
Fin enregistrement
Algorithme P (.)
dbut
Si (fin) alors
.. // pas dappel rcursif
Sinon
..
P() // lalgorithme P appelle lui mme une
.. // ou plusieurs fois
fin si
fin
1
Support de Cours Algos & structures de donnes Mr BERREHOUMA N.
1 si n=0
n !=
n*(n-1) ! si n>0
Sinon
m factorielle(n-1)
Valeur_de_retour n*m
fin si
fin
1 2 3 4
factorielle(3) n=3
mfactorielle(2) n=2
mfactorielle(1) n=1
mfactorielle(0) n=0
valeur_de_retour1
valeur_de_retour1*1
valeur_de_retour2*1
valeur_de_retour3*2
2
Support de Cours Algos & structures de donnes Mr BERREHOUMA N.
Lalgorithme pair(n :entier) renvoie Vrai si n est pair et Faux si n est impair.
dbut dbut
Si n=0 alors Si n=0 alors
Valeur_de_retour vrai Valeur_de_retour faux
Sinon Sinon
fin si
fin si fin
fin
1 2 3 4
pair(3) n=3
impair(2) n=2
pair(1) n=1
impair(0) n=0
valeur_de_retourfaux
valeur_de_retourfaux
valeur_de_retourfaux
valeur_de_retourfaux
3
Support de Cours Algos & structures de donnes Mr BERREHOUMA N.
3. Boucles rcursives.
une boucle peut scrire sous forme rcursive. il faut raliser une action (criture par
exemple). et recommencer avec une nouvelle valeur de lindice de boucle.
la boucle peut tre croissante ou dcroissante suivant laction ralise avant ou aprs
lappel rcursif.
soit la boucle suivante :
crire(i)
fin pour
rsultats de lexcution :
pour lalgorithme croissante 5 4 3 2 1
pour lalgorithme dcroissante 1 2 3 4 5
Analyse rcursive
Ralisation de la rcursivit
4
Support de Cours Algos & structures de donnes Mr BERREHOUMA N.
Ce problme est rsolu en utilisant systmatiquement une pile. A chaque entre dans
le sous programme, on empile les variables et les adresses sauvegarder, chaque
sortie, on dpile.
Remarque
Une pile est une structure de donnes dans laquelle des donnes sont insres
et enleves selon le principe dernier arriv premier sortie, (exemple pile des
livres, pile d assiettes,..)