Télécharger la présentation
1
Chapitre 3 (fin). Les arbres AVL
Andelson –Velskii et Landis Les auteurs de arbres AVL
2
Les ABOH ont le défaut de pouvoir être déséquilibrés
Les ABOH ont le défaut de pouvoir être déséquilibrés. Les AVL sont des ABOH qui garantissent un équilibre partiel. Il n’y a pas d’éléments identiques. Les algorithmes Ajout et Suppression tiennent compte de l’équilibre, ils réorganisent l’équilibre de l’arbre. Structure d’un AVL typedef struct noeud_avl { T info; -1 hsag - hsad = 1 int balance; 0 hsag = hsad struct avl sag,, sad ; +1 hsad - hsag = 1 } noeud_avl; typedef noeud_avl* avl
3
Ajout dans un AVL A est un nœud le plus proche du nœud inséré avec le facteur de balance devenu 2 après la dernière insertion. (Ascendant du nœud inséré) GG : nouveau sommet Y est inséré dans le sag de sag de A. GD : nouveau sommet Y est inséré dans le sad de sag de A. DD : nouveau sommet Y est inséré dans le sad de sad de A. DG : nouveau sommet Y est inséré dans le sag de sad de A. GG est symétrique à DD, et GD est symétrique à DG. Donc, il suffit de voir comment le rééquilibrage est fait pour le cas gauche-gauche et le cas gauche-droite. Les cas droite-droite et droite-gauche sont gérés de façon symétrique.
4
Cas gauche-gauche Si le dépassement de hauteur du sag est du à une augmentation de hauteur de son propre sag, on est dans le cas gauche-gauche. La situation et la réorganisation nécessaire sont les suivantes : -1 h h h
5
On rajoute un élément dans le sag du sag de A.
A B B A On effectue une rotation : A dévient le fils droit du B, le fils droit du B dévient le fils gauche du A. -2 -1 h h + h h h + h 1 1
6
Cas gauche-droite Si le dépassement de hauteur du sag est du à une augmentation de hauteur de son sad, on est dans le cas gauche-droite. La situation et la réorganisation nécessaire sont les suivantes : a) A On rajoute un élément dans le sad B du sag de A. A C B B A C On effectue une rotation : A dévient le fils droit du C, B dévient le fils gauche du C. -1 -2 1
7
On rajoute un élément dans le sag du C.
b. A B h C h h-1 h-1 On rajoute un élément dans le sag du C. -1
8
A C B A B h C h h h h h-1 h-1 +1 On effectue une rotation : A dévient le fils droit du C, B dévient le fils gauche du C, le fils gauche du C dévient le fils droit du B, le fils droit du C dévient le fils gauche du A. -2 1 1 -1
9
On rajoute un élément dans le sad du C.
B h h C h-1 h-1 On rajoute un élément dans le sad du C. -1
10
On effectue une rotation :
B A h h-1 h h h A B h h C h h-1 +1 On effectue une rotation : A dévient le fils droit du C, B dévient le fils gauche du C, le fils gauche du C dévient le fils droit du B, le fils droit du C dévient le fils gauche du A. -2 -1 1 1
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.