Il suffit d’utiliser un tableau de taille N o`u N est le nombre de nœuds.
L’indice de la racine est 1, et pour tout nœud d’indice i , les indices de ses fils
sont 2iet 2i+ 1.
1.1.5
`
A quel arbre binaire complet correspond le tableau [S,U,G,A,T,A,S,S,L,L,E,R]
en utilisant le code pr´ec´edent ?
L’arbre est pr´esent´e en figure 3.
U
S
SL
A
LE
T
G
A S
1
2 3
4 5 6
8 9 10 11
7
R
12
Figure 3: Arbre correspondant `a [S,U,G,A,T,A,S,S,L,L,E,R]
1.2 Manipulations d’arbres binaires complets
1.2.1
Proposez un algorithme permettant d’ins´erer un ´el´ement dans un
arbre maximier cod´e comme dans la partie pr´ec´edente.
On commence par ajouter un ´el´ement `a l’arbre binaire complet `a la fin du
tableau. Si son p`ere est plus petit que lui, on ´echange. Si apr`es l’´echange le
nouveau p`ere est plus petit on ´echange encore, et ainsi de suite jusqu’`a la racine.
Ces ´echanges `a r´ep´etitions assurent le fait qu’`a la fin la structure maximier est
respect´ee. Il faut cependant faire attention `a ne pas d´epasser la racine (une
sentinelle est plac´ee).
L’algorithme 1 explicite cette m´ethode.
1.2.2
Mˆeme question pour le codage du remplacement de la clef de la racine.
Cela se fait de la fa¸con oppos´ee `a l’insertion. On commence par remplacer
la valeur de la racine par la nouvelle valeure. Si la valeur de la nouvelle racine
est plus petite que la plus grande valeur de ses fils, on ´echange les valeurs. Si le
probl`eme presiste, on continue les ´echanges de la mˆeme mani`ere. Ces ´echanges
successifs assurent le fait `a la fin de la proc´edure, la structure maximier est
respect´ee.
3