Algorithmique avancée et complexité
Arbres binaires
Feuille d’exercices n°6
Exercice 1 :
Dans cet exercice on notera
n
le nombre de nœuds d'un arbre binaire et
h
sa hauteur.
Tous les arbres considérés seront supposés non vides.
Quel est le nombre maximal de feuilles d'un arbre de hauteur
h
?
Quel est le nombre maximal de nœuds d'un arbre de hauteur
h
?
Quelle est la hauteur maximale d’un arbre à
n
nœuds ?
Quelle est la hauteur minimale d’un arbre de
n
nœuds ?
Exercice 2 :
Ecrire une fonction récursive (compter_noeuds (Arbre arbre): entier) qui retourne le
nombre de nœuds dans un arbre binaire.
Exercice 3 :
Ecrire une fonction récursive (compter_feuilles (Arbre arbre): entier) qui retourne le
nombre de feuilles dans un arbre binaire.
Exercice 4 :
Un parcours d’arbre est une façon d'ordonner les nœuds d'un arbre afin de les parcourir.
On distingue essentiellement deux types de parcours : le parcours en largeur et les
parcours en profondeur. Parmi les parcours en profondeur, on distingue à nouveau le
parcours préfixe, le parcours infixe et le parcours suffixe.
Le parcours préfixe traite la racine, puis le sous-arbre gauche puis le droit.
Le parcours infixe traite le sous-arbre gauche, puis la racine, puis le droit.
Le parcours suffixe (postfixe) traite d’abord les sous-arbres gauche, puis droit, pour
terminer par la racine de l’arbre.
Représentez l’expression : (2 + 5) - (4 + ((4 - 7) + 6)) sous forme d’un arbre binaire.
Ecrire l'expression précédente :
a. sous forme préfixée.
b. sous forme postfixée.
Même question pour les deux expressions suivantes :
((7 + 3) – 1) + (2 * (4 - 5))
((4 + (7 – 8)) + 6) * (((4 – 9) + 7) * 6)
Les arbres sont particulièrement adaptés à l’usage de la récursivité, écrire les procédures
suivantes en récursif :
affichagePrefixe (Arbre a); affichant un arbre en ordre préfixe ;
affichageInfixe (Arbre a); affichant un arbre en ordre infixe :
affichageSuffixe (Arbre a); affichant un arbre en ordre suffixe.