TD - AB Corrigé 1
TD - AB Corrigé 1
TD - AB Corrigé 1
Exercices :
Soit A un arbre binaire représenté par des pointeurs (utiliser les types NŒUD et AB définis
en cours).
1. Ecrire une fonction récursive qui calcule le nombre de feuilles dans un arbre binaire
2. Ecrire une fonction qui calcule le nombre de nœuds d’un arbre binaire.
1
3. Ecrire une procédure récursive Echange (A : AB) qui étant donné un arbre binaire A
permet d’échanger les fils gauches et droits de chaque nœud.
A A
Echange
B C C B
D E F F E D
Procédure Echange ( A : AB)
Var P : ^ NŒUD Parcours Préfixé
Début
Si (A ≠ Nil) alors
P A^.fg
A^.fg A^.fd Traiter ( A)
A^.fd P
Echange ( A^.fg)
Echange ( A^.fd)
Finsi
Fin
4. Ecrire une fonction récursive Egaux( A, B : AB) : booléen qui permet de tester si
deux arbres binaires A et B sont égaux.
Fonction Egaux ( A, B : AB) : booléen
Début
Si (A ≠ Nil et B ≠ Nil ) // si A et B sont non vides
alors
Si ( A^.val = B^.val)
alors Retourner ( Faux )
Sinon
Retourner (Egaux (A^.fg, B^.fg) et Egaux (A^.fd, B^.fd) )
Finsi
Sinon
Si (A = Nil et B = Nil ) // si A et B sont vides
alors Retourner ( Vrai )
Sinon
Retourner ( Faux )
Finsi
Fin
2
5. Ecrire une fonction récursive Parfait ( A : AB, K : entier) : booléen qui vérifie qu’un
arbre binaire non vide de hauteur k est parfait.