Académique Documents
Professionnel Documents
Culture Documents
Objectifs
• Définir, créer et manipuler un arbre binaire de recherche.
• Savoir comment parcourir un arbre binaire de recherche ?
• Trouver un élément dans un arbre.
• Savoir passer d’une structure dynamique d’un arbre vers une structure statique
représentée par un vecteur.
• Savoir fusionner deux arbres.
• Connaitre les différents types d’arbres : dégénéré, complet ou parfait.
Écrire une procédure qui construit un vecteur contenant les éléments d’un arbre binaire.
Pour indiquer un arbre vide, il suffit de la représenter par le symbole ⌀.
Par exemple, ci-dessous la représentation de l’arbre de la figure 1 :
1 2 3 4 5 6 7 8 9 10 11 12 13
22 8 35 4 14 23 ⌀ 2 5 ⌀ 15 ⌀ ⌀
Écrire une procédure qui permet de copier un arbre binaire A dans un deuxième arbre B.
Écrire une procédure qui permet de fusionner deux arbres binaires A et B, et de renvoyer un
arbre C qui contient les deux arbres. Discuter les différents cas possibles.
On dispose des deux fonctions hauteur et taille. On souhaite écrire des fonctions qui
permettent de vérifier si un arbre :
1. est dégénéré :
• Un arbre dégénéré est un arbre dont tous les nœuds internes sont des
points simples.
• L’arbre B est dégénéré si taille(B) = hauteur(B) + 1.
a) Écrire la première solution en utilisant les deux fonctions taille et hauteur.
b) Écrire à nouveau sans utiliser les deux fonctions taille et hauteur.
2. est complet :
• Un arbre dont tous les niveaux sont remplis est complet.
• L’arbre B est complet si taille(B) = 2hauteur(B) + 1 – 1.
a) Écrire la première solution en utilisant la fonction hauteur.
b) Écrire la deuxième solution sans utiliser la fonction hauteur.
3. est parfait :
• Un arbre est parfait si tous ses niveaux sont remplis, sauf le dernier dans
lequel les feuilles sont rangées le plus à gauche possible.
Écrire une fonction permettant de vérifier si un arbre est parfait.