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

Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)

Présentations similaires


Présentation au sujet: "Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)"— Transcription de la présentation:

1 Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) http://zegour.esi.dz email: d_zegour@esi.dzd_zegour@esi.dz

2 Les arbres AVL Arbres AVL Un arbre AVL est un arbre de recherche binaire équilibré Ajouter un champ balance (facteur d'équilibrage ) au niveau de chaque noeud 80 70 0 +1 3273 45 86 10 8294 0 0 0 0 +1 90 0 0 | Profondeur(fg(n) )– Profondeur(fd(n)) | <= 1

3 80 70 0 +1 3273 45 86 10 8294 0 0 0 0 +1 90 0 0 5 +1 +2 Les arbres AVL Arbres AVL (Cas de déséquilibre) 0

4 80 70 0 +1 3273 45 86 10 8294 0 0 0 0 +1 90 0 0 55 +2 Les arbres AVL Arbres AVL (Cas de déséquilibre) 0

5 Arbres AVL (Techniques d'équilibrage ) Examinons un sous arbre de racine le plus jeune antécédent qui devient non équilibré suite à une insertion Cas où le facteur d'équilibrage est +1 Les arbres AVL A B T3 T1T2 +1 0 h=n B Le nouveau nœud est inséré dans le sous arbre gauche de B. Donc f(B) devient 1 et f(A) devient 2

6 Arbres AVL (Techniques d'équilibrage ) Examinons un sous arbre de racine le plus jeune antécédent qui devient non équilibré suite à une insertion Les arbres AVL A B T4 T1 +1 0 C T2T3 0 h=n h=n-1 B Le nouveau nœud est inséré dans le sous arbre droit de B. f(B) devient -1 et f(A) devient 2. Cas où le facteur d'équilibrage est +1

7 Arbres AVL (Techniques d'équilibrage ) Transformer l'arbre de telle sorte que l'inordre soit préservé l'arbre transformé soit équilibré Les arbres AVL

8 Arbres AVL (Techniques d'équilibrage ) (a) rotation droite du nœud A Les arbres AVL A B T3 T1T2 +2 +1 h=n B A B T3 T1 T2 0 0 h=n B

9 Arbres AVL (Techniques d'équilibrage ) (b) rotation gauche du nœud B suivie par une rotation droite du nœud A Les arbres AVL A B T4 T1 +2 C T2T3 0 h=n h=n-1 B A B T4 T1 0 0 C T2 h=n h=n-1 B T3

10 Arbres AVL (Algorithme d'insertion) La première partie de l'algorithme consiste à insérer la clé dans l'arbre sans tenir compte du facteur d'équilibrage Elle garde aussi la trace du plus jeune antécédent, soit Y qui devient non équilibré La deuxième partie fait la transformation à partir de Y Les arbres AVL

11 Arbres AVL (Rotation gauche) N D GD DGDG P D DGDG ND G P AFF_FD(N, DG)AFF_FG(D, N))AFF_FG(Parent, D) Rotation gauche(N) Les arbres AVL

12 Arbres AVL (Rotation droite) N GDGD GD G P G D G N GDGD P AFF_FG(N, GD)AFF_FD(G, N))AFF_FD(Parent, G) Rotation droite (N) Les arbres AVL

13 Arbres AVL (Exemples) Insérons la séquence : A, B, X, L, M, C, D, E, H, R, F dans un arbre AVL. Insertion A, B, X Les arbres AVL A B X A B X

14 Arbres AVL (Exemples) Insérons la séquence : A, B, X, L, M, C, D, E, H, R, F dans un arbre AVL. Insertion L, M Les arbres AVL A B X L M A B M L X

15 Arbres AVL (Exemples) Insérons la séquence : A, B, X, L, M, C, D, E, H, R, F dans un arbre AVL. Insertion C Les arbres AVL A B M L X X B L M CXA

16 Arbres AVL (Exemples) Insérons la séquence : A, B, X, L, M, C, D, E, H, R, F dans un arbre AVL. Insertion D, E Les arbres AVL B L M CXA D E B L M D X A E C

17 Arbres AVL (Exemples) Insérons la séquence : A, B, X, L, M, C, D, E, H, R, F dans un arbre AVL. Insertion H, R, F Les arbres AVL D L R DXB H E C A M

18 Arbres AVL (Suppression) Étape 1 : comme dans un arbre de recherche binaire ordinaire Étape 2 : mettre à jour les balances Cas où la balance d’un nœud A devient +2  Le fils gauche B de A doit exister Les cas suivants peuvent se présenter a)B a une balance égale à + 1 b)B a une balance égale à – 1 c)B a une balance égale à 0 Même traitement symétrique dans le cas où la balance d’un nœud A devient -2 Traitement peut continuer en cascade Les arbres AVL

19 Arbres AVL (Suppression) B a une balance égale à + 1 A B n-1 n +2 +1 A B n-1 n 0 0 Les arbres AVL

20 Arbres AVL (Suppression) B a une balance égale à -1 B a donc un fils à sa droite, soit C. Cas Balance (C)= 0 A B n-1 n +2 A B n-1 +2 C n-1 0 Les arbres AVL

21 Arbres AVL (Suppression) B a une balance égale à -1, C son fils droit avec Balance(C)=0 A C n-1 0 0 B 0 A B +2 C n-1 0 Les arbres AVL

22 Arbres AVL (Suppression) B a une balance égale à -1 B a donc un fils à sa droite, soit C. Balance (C)= +1 A B n-1 n +2 A B n-1 +2 C n-1n-2 +1 Les arbres AVL

23 Arbres AVL (Suppression) A C n-1n-2 0 B n-1 0 A B +2 C n-1n-2 +1 B a une balance égale à -1, C son fils droit avec Balance(C)=+1 Les arbres AVL

24 Arbres AVL (Suppression) B a une balance égale à -1 B a donc un fils à sa droite, soit C. Balance (C)= -1 A B n-1 n +2 A B n-1 +2 C n-2n-1 Les arbres AVL

25 Arbres AVL (Suppression) A C n-1 0 0 B n-2n-1 +1 A B n-1 +2 C n-2n-1 B a une balance égale à -1, C son fils droit avec Balance(C)=-1 Les arbres AVL

26 Arbres AVL (Suppression) B a une balance égale à 0 A B n-1 nn +2 0 A B n-1 n n +1 Les arbres AVL

27 Arbres AVL (Analyse théorique) la profondeur maximale d'un arbre binaire équilibré est 1.44*Log 2 n La recherche dans un tel arbre n'exige jamais plus de 44% de plus de comparaisons que pour un arbre binaire complet Operations de maintenance : - Restructuration = 1 rotation ou double rotation - Insertion : au plus 1 restructuration - suppression : au plus Log2 (N) restructurations Les arbres AVL


Télécharger ppt "Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)"

Présentations similaires


Annonces Google