Professional Documents
Culture Documents
dz
94
45
90
| Profondeur(fg(n) ) Profondeur(fd(n)) | <= 1 Ajouter un champ balance (facteur d'quilibrage ) au niveau de chaque noeud
80 -1 86 +1
94
+1
45
90
0 5
80 -1 0 82 86 +1
+1
70
-1 0 10
94
45
90
55
T1
T2
h=n
h=n
B
h=n
Le nouveau nud est insr dans le sous arbre gauche de B. Donc f(B) devient 1 et f(A) devient 2
+1 0 B
T4
T1
h=n
T3
T2
h=n-1
B
h=n-1
Le nouveau nud est insr dans le sous arbre droit de B. f(B) devient -1 et f(A) devient 2.
0 B 0 A
T1
h=n
h=n
B
T2
T3
h=n
B
h=n
h=n
h=n
B C 0
T4
-1
T1
h=n
T3
T1
T2
T3
T4
h=n
T2
h=n
h=n-1
B
h=n-1
h=n
h=n-1
B
h=n-1
La premire partie de l'algorithme consiste insrer la cl dans l'arbre sans tenir compte du facteur d'quilibrage Elle garde aussi la trace du plus jeune antcdent, soit Y qui devient non quilibr La deuxime partie fait la transformation partir de Y
Rotation gauche(N)
N D
D D
D G
D D
D G
AFF_FD(N, DG)
AFF_FG(D, N))
AFF_FG(Parent, D)
G G
G G
G D
G D
AFF_FG(N, GD)
AFF_FD(G, N))
AFF_FD(Parent, G)
B B A X A M
L L M X
Mme traitement symtrique dans le cas o la balance dun nud A devient -2 Traitement peut continuer en cascade
+2 +1 B
0 A B 0 n-1 n A
n-1
n-1
n-1
n-1
n-1
n-1
n-1
+2
0
A -1 C 0 A
n-1
0 B
n-1
n-1
n-1
n-1
n-1
n-1
+1
n-1
n-2
+2
0
A -1 C -1 A
n-1
0 B
n-1
n-1
n-2
+2
-1
B n-1
n-1
n-1
-1
n-2
n-1
+2
0 C 0 A
-1
n-1
+1 B
n-1
n-2
n-1
+2 0 B
-1 A B +1 n-1 n A
n-1
Operations de maintenance :
- Restructuration = 1 rotation ou double rotation - Insertion : au plus 1 restructuration - suppression : au plus Log2 (N) restructurations
37
50 30
39 35 10
20
33
36
38
40
60
90
32
34 80 100
P P P F P
P P F
X : nud introduit
P P P D P F X
P P P
D P
P P A B F
X A B
Rotation gauche du nud P + rotation droite du nud PP. X devient noir et PP rouge.
Le processus se termine
Insrer 10
13
10
13
10
P
10
Rotation
5
13
PP
10
Coloration P
PP
10
P Coloration
13
13
10
10
PP
5 13
13
P X
4
Double rotation
Suppression comme dans un arbre de recherche binaire. Si le nud physiquement supprim est noir, un algorithme de maintenance est appliqu. On considre que le nud qui remplace le nud supprim porte une couleur noire en plus. Ceci signifie qu'il devient noir s'il est rouge et qu'il devient doublement noir s'il est dj noir. Lalgorithme de maintenance a donc pour rle de supprimer ce nud doublement noir.
Soit X le noeud doublement noir (Suppos ici comme un fils gauche) et P son pre
Si le parent P est noir, le processus continue en remontant dans larbre. P devient le nouveau noeud doublement noir.
F
F D
F D
Rotation gauche de P Recolorer : P et FD deviennent noirs et la couleur de F est celle de P avant la transformation. Le processus se termine
Recolorer : P devient noir et la couleur de FG est celle de P avant la transformation. Le processus se termine
P X P S
S P B
X P
X P
X devient simplement un noeud noir. Cest le seul cas ou la hauteur de larbre diminue. Le processus se termine.