Structure de données : Arbres
Définition: un arbre est un ensemble de nœuds organisés à partir d’un nœud distingué appelé racine.
Applications : - organisation des fichiers : unix
- Représentation des pgmes en compilation Propriété intrinsèque : récursivité naturelle.
Exemples d’arbres binaires:
1) Tournoi de Tennis
Abbes Riad Riad
Karim Younes Karim
Karim
y z
2) Expressions arithmétiques
2 y
* - x
/ + x
3
* +
Vocabulaire
n1
n7 n2
n6 n3
n5 n4
n8
n9 n11
Racine Père de n2, n7
(Ascendant de n9)
n10 Fils gauche de n1
(premier fils de n1) Nœud interne
Sous arbre gauche de n2
Fils droit de n1 (2èmefils de n1) (Frère de n2)
Descendant de n1 Nœud Externe = feuille
Mesures sur les arbres
Taille=nombre des nœuds Taille (arbre-vide)=0
Taille(<o, B1, B2 >)=1+taille(B1)+taille(B2) Hauteur=niveau d’un nœud x d’un arbre B h(x)=0 si x = racine (B)
h(x)=1+h(y) si y est le père de x
C’est le nombre de liens de la racine vers x.
Hauteur = Profondeur d’un arbre B h(B)=max {h(x); x nœud de B}
Le degré d’un nœud est le nombre de ses fils. Degré(n1)=2, degré(n3)=1
Le degré d’un arbre est le degré maximum de ses nœuds.
n1
n4 n2
n3
n6
n5
n10 n8
n7
n9 h(n1)=0
h(n4)= h(n2)=
h(n1)+1=1
h(n3)= h(n5)=h(n7) =2
h(n6)= h(n9)=3
h(n8)=h(n10)=4
Donc : h(Arbre B)=4
y z
1) Expressions arithmétiques
2 y
* -
x
/ +
x
3
* +
Utilisation des arbres
2) Chaînes de caractères
er
tion -
eur orité
eri Inf
orm
ati
que
3) Arbres généalogiques
…
… -
… …
Ismail Ibrahim
Ishak
Yakoub
Youcef
• Un arbre binaire est un arbre dont le degré max est égal à 2.
càd chaque nœud possède 0, 1 ou 2 fils.
• Un arbre général est un arbre non binaire.
Arbre binaire
A B C
D E
A B C
D E F
Arbre général
Parcours en profondeur à main gauche d’un arbre binaire : Examen systématique ordonné de tous les nœuds = traversée de l’arbre.
Pour un arbre :
Pour un nœud :
Montée de droite Montée de
gauche Descente
n1
n2 n3
n4
n5 n6 n7
n8 n9 n11 n12 n13 n14 n15 n16
n20 n19
n18
n17 n21 n22
Algorithme récursif de parcours d’un arbre binaire Procedure Parcours (A : Arbre);
Begin If A = Arbre-vide then Term else begin
T
1;
Parcours (g(A));
T
2;
Parcours (d(A));
T
3;
end;
End;
L’algorithme précédent peut être simplifié par les 3 parcours suivants : Préfixe : P-G-D
Infixe : G-P-D Suffixe : G-D-P
P
G D
Exercices de TD
Exercice 01 : Une expression arithmétique peut être représentée par un arbre binaire.
Soit l’expression arithmétique représentée par l’arbre A : Donner les expressions représentées par A
lorsque A est parcouru en ordre préfixe, infixe et post-fixe.
+
- *
x * 3 +
2 y / x
y z
SUITE de TD Exercice 02 :
Soit l’expression arithmétique représentée par l’arbre binaire A :
Donner les expressions représentées par A Dans le parcours en profondeur à main droite, préfixe, infixe et post-fixe.
+
- *
x * 3 +
2 y / x
y z
Transformation d’un arbre général en un arbre binaire (Bijection fils aîné – frère droit ):
- L’arbre binaire se construit par le procédé suivant : étant donné un nœud dans un arbre général, on crée un lien gauche vers son premier fils (fils aîné) et un lien droit vers son frère situé à droite.
- L’arbre général se construit à partir de l’arbre binaire par la conservation des liens gauches et la suppression des liens droits tout en les mettant au même niveau que le fils aîné.
n1
n0
n2 n3 n4
n1
n0
n2
n3
n4