Académique Documents
Professionnel Documents
Culture Documents
2. Taille= 13
Profondeur = 4
Nœuds internes : 11, 5, 15, 2, 3, 13, 17, 21
Nœuds externes : 4, 9, 12, 19, 22
Parcours post-ordre : 4- 3- 2- 9- 5- 12- 13- 19- 22- 21- 17- 15- 11
3. Transformation en forêt
Page 1
Procédure AffDecr (A: Arbre)
Début
Si (A <> Nil) alors
AffDecr (Fd(A))
Ecrire(Info(A))
AffDecr (Fg(A))
Fin Si
Fin
5. Fonction qui calcule nombre de feuilles
Fonction Nbr_Feuilles (A: Arbre) : Entier
Début
Si (A = Nil) alors
Retourner 0
Sinon
Si (Fg(A)=Nil) et (Fd(A)=Nil) Alors
Retourner 1
Sinon
Page 2
Fin Tantque
Fin Si
Fin
8. Ordre de grandeur est O(n) car on doit parcourir tous les nœuds de l’arbre.
Exercice 2 :
1. Une fonction récursive qui calcule la somme de deux entiers positifs a et b :
Fonction Somme (a, b: entier) : entier
Début
Si (a = 0) alors
Somme b
Sinon
Somme Somme (a-1, b+1) ;
Fin Si
Fin
2. Type de récursivité : Simple et terminale
3. Généralisation de la fonction aux entiers de signe quelconque :
Fonction Somme (a, b: entier) : entier
Début
Si (a = 0) alors
Somme b
Sinon
Si (a > 0) alors
Somme Somme (a-1, b+1)
Sinon
Somme Somme (a+1, b-1)
Fin Si ;
Fin Si ;
Fin ;
Exercice 3 :
1. Procédure distribuer(var joueurA: FileCarte, var joueurB: FileCarte, var C:PileCarte)
var t: Carte;
Début
creer_file(joueurA);
creer_file(joueurB);
Tant que non pile_vide(C) faire
depiler(C, t)
enfiler(joueurA, t)
depiler(C, t)
enfiler(joueurB, t)
Fin tantque;
Fin
Page 3
2. Procédure jouerCoup(var joueurA: FileCarte, var joueurB: FileCarte);
var B: bataille; a, b: Carte;
Début
defiler(joueurA, a);
defiler(joueurB, b);
Page 4