Exercice 4arbres SondesExam2022
Exercice 4arbres SondesExam2022
Exercice 4arbres SondesExam2022
Un arbre ordonné ou arbre binaire de recherche (ABR) peut être défini récursivement de la manière
suivante :
A est un ABR si
A est l’arbre vide
A est l’arbre <A1, x, A2> tel que A1 et A2 sont des ABR et tout nœud de A1 est inférieur
strictement à x et tout nœud de A2 est supérieur strictement à x
Ecrivez un algorithme qui permet de construire un ABR B à partir d’un arbre binaire A quelconque.
Résolution :
L’exercice doit être résolu à la manière de la création d’un arbre binaire de recherche avec la différence que c’est
le programme principal qui lit les valeurs à introduire dans l’arbre dans une boucle dans notre exercice on ne lit
pas les valeurs au clavier nous les lisons dans un arbre préexistant A que nous versons dans B. A cet effet nous
devons choisir un type des trois parcours disponibles. Choisissons le préfixé.
Rappel algorithme du cours :
Type
arbre = ^noeud
noeud = Enregistrement
val : entier
gauche : arbre
droit : arbre
Fin
Variables
Racine : arbre
val :entier
Procédure CréerABR(Var B:arbre; elt :entier)
Début
Si B=NIL alors
allouer(B)
B^.valelt
B^.gaucheNIL
B^.droit NIL
sinon
si (elt<B^.val) alors
CréerABR (B^.gauche,elt)
sinon
si (elt > B^.val) alors
CréerABR (B^.droit,elt)
finsi
finsi
finsi
Fin
Début {PP}
racineNIL
Ecrire(" Entrez un entier: ") lire(val)
TantQue v≠ 0 faire (*on arrête à l’introduction d’un zéro*)
CréerABR (racine,val)
Ecrire(" Entrez un entier: ") lire(val)
FinTantQue
Fin
Proposition de solution Exercice création d’un ABR à partir d’un arbre quelconque
(*B = arbre binaire de recherche
A = L’arbre binaire quelconque *)
Résolution
Voici les listes de nœuds que fournies :
Parcours préfixé (RGD) : g b d i m h j n e c a k f l
Parcours infixé (GRD) : i d m b j h n g a c e f k l
Pour représenter graphiquement l'arbre binaire, nous pouvons utiliser l'approche de construction
récursive. Voici les étapes à suivre :
1. Trouver la racine de l'arbre : La première valeur dans la liste de parcours préfixé (RGD) est la
racine de l'arbre. Dans ce cas, la racine est "g".
2. Diviser la liste de parcours infixé (GRD) : Trouvez la position de la racine dans la liste de parcours
infixé (GRD). Les éléments situés à gauche de cette position correspondent aux nœuds du sous-
arbre gauche, et les éléments situés à droite correspondent aux nœuds du sous-arbre droit. Dans
notre cas, la racine "g" se trouve à la position 6 dans la liste de parcours infixé (GRD). Donc, les
nœuds du sous-arbre gauche sont "i d m b j h n", et les nœuds du sous-arbre droit sont "a c e f k
l".
g
i d m b j h n a c e f k l
3. Répéter les étapes 1 et 2 pour chaque sous-arbre : Appliquez les mêmes étapes pour les sous-
arbres gauche et droit récursivement jusqu'à ce que tous les nœuds soient traités.
Dans cet arbre, "g" est la racine. Le sous-arbre gauche est composé de "i d m b j h n", et le sous-
arbre droit est composé de "a c e f k l".
Tour 2
b e
i d m j h n ac fkl
Tour 3
Parcours préfixé (RGD) : g b d i m h j n e c a k f l
Parcours infixé (GRD) : i d m b j h n g a c e f k l
b e
d h k
a
i m j n f l
c