La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Chapitre 3 (fin). Les arbres AVL

Présentations similaires


Présentation au sujet: "Chapitre 3 (fin). Les arbres AVL"— Transcription de 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


Télécharger ppt "Chapitre 3 (fin). Les arbres AVL"

Présentations similaires


Annonces Google