Algorithmique
Types abstraits : Les arbres – avril 2013
Info-Sup
Epita
L’utilisation de cette représentation est intéressante sur un arbre parfait (ou complet, comme celui de
la figure 8), car on peut limiter la taille du vecteur à celle de l’arbre. Par contre, sur un arbre quelconque,
la place occupée n’est plus optimisée.
Représentation de l’arbre de la figure 1 :
1 2 3 4 5 6 7 8 9 10 11 12 13
e c u u l q q e o n
La place occupée sera d’autant moins optimisée que la hauteur de l’arbre sera élevée. Dans le cas d’un
arbre dégénéré (ou filiforme) à nnœuds, l’espace occupé peut alors atteindre 2n−1!
Figure 5 – Arbre filiforme Figure 6 – Peigne droit
Représentation de l’arbre filiforme de la figure 5 :
1 2 3 . . . 7 . . . 14 . . . 29 . . . 58
f i . . . l . . . i . . . f . . . e
Représentation du peigne droit de la figure 6 :
1 2 3 . . . 6 7 . . . 14 15 . . . 30 31 . . . 62 63
p d e . . . r i . . . o g . . . i n . . . t e
1.3.2 Utilisation
◦La racine est en position 1 dans le vecteur.
◦Si iest la position du nœud actuel alors :
◃son fils gauche se trouve à la position 2i
◃son fils droit se trouve à la position 2i+ 1
◃son père (sauf pour la racine de l’arbre),
se trouve à la position idiv 2.
En pratique, il faut avoir une valeur particulière (∅)
pour remplacer la racine de l’arbre vide. Sauf si
l’arbre est parfait : la taille de l’arbre suffit !
4