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)

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 | Profondeur(fg(n) )– Profondeur(fd(n)) | <= 1

3 Les arbres AVL Arbres AVL (Cas de déséquilibre) 0

4 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 T1T 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 T 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 T1T 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 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 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 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

28 Les arbres Rouge et Noir Arbre Arbre rouge et noir

29 Arbres Red Black Un arbre rouge et noir (RB-tree) est un arbre binaire de recherche où chaque nœud est de couleur rouge ou noire. - Nœuds noirs : équilibrage parfait - Nœuds rouges : tolérer légèrement le déséquilibre Pire des cas: Alternance entre les nœuds rouges et noirs. De plus, toutes les branches issues de tout nœud : 1.Ne possèdent pas deux nœuds rouges consécutifs. 2.Possèdent le même nombre de nœuds noirs Les arbres Rouge et Noir La racine est noir

30 Arbres Red Black (Insertion) Insertion comme dans un arbre de recherche binaire. Si son père est aussi rouge, un algorithme de maintenance est appliqué Le nœud inséré est toujours une feuille On lui attribue la couleur rouge Les arbres Rouge et Noir

31 Arbres Red Black(Insertion) CAS 1: le frère F de P est rouge P FP X P FP X Les nœuds P et F deviennent noirs et leur père PP devient rouge. Le processus continue en cascade X : nœud introduit Les arbres Rouge et Noir

32 Arbres Red Black(Insertion) CAS 2: le frère F de P est noir et X est le fils gauche de P. P FP X DPDP P P X F DPDP Rotation droite du nœud PP. P devient noir et PP rouge. Le processus se termine Les arbres Rouge et Noir

33 Arbres Red Black(Insertion) CAS 3: le frère F de P est noir et X est le fils droit de P. P FP X BA X P P F BA Rotation gauche du nœud P + rotation droite du nœud PP. X devient noir et PP rouge. Le processus se termine Les arbres Rouge et Noir

34 Arbres Red Black(Insertion) CAS 4: le nœud père P est la racine de l'arbre P X P X Le nœud père devient noir C'est le seul cas où la hauteur noire de l'arbre augmente. Le processus se termine Les arbres Rouge et Noir

35 Arbres Red Black (Exemple) Rotation Couleur du frère de P= noir Et X = fg(P) X P Insérer 13Insérer 10 Insérer 5 Les arbres Rouge et Noir

36 Arbres Red Black(exemple) Coloration Couleur du frère de P= rouge Insérer 2 2 X P PP X P PP X P PP Coloration Les arbres Rouge et Noir

37 Arbres Red Black (exemple) Double rotation Insérer X P PP 4 Couleur du frère de P= noir ET X = fd(P) ET P=FG(PP) Les arbres Rouge et Noir

38 Suppression comme dans un arbre de recherche binaire. On considère que le nœud qui remplace le nœud 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 déjà noir. L’algorithme de maintenance a donc pour rôle de supprimer ce nœud doublement noir. Si le nœud physiquement supprimé est noir, un algorithme de maintenance est appliqué. Arbres Red Black (Suppression) Les arbres Rouge et Noir

39 P P FX P FX Soit X le noeud doublement noir (Supposé ici comme un fils gauche) et P son père CAS 1: Le frere F de X est noir et a deux fils noirs P P FX FX P P Transformer F en un noeud rouge Si le parent P est noir, le processus continue en remontant dans l’arbre. X devient le nouveau noeud doublement noir. Arbres Red Black (Suppression) Les arbres Rouge et Noir

40 P P F A X FDFD BC F FDFD P XABC CAS 2: Le frère F du noeud X est noir et a un fils droit rouge (FD) 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 Arbres Red Black (Suppression) Les arbres Rouge et Noir

41 P P F FGFG X AB FGFG FP B XA CAS 3: si le frere F du noeud X est noir et a un fils gauche rouge(FG) Rotation droite (F) + rotation gauche (P). Recolorer : P devient noir et la couleur de FG est celle de P avant la transformation. Le processus se termine Arbres Red Black (Suppression) Les arbres Rouge et Noir

42 P P SX B A CAS 4: Le frère F de X est rouge S BP A P X Rotation droite(P) Le processus continue selon le cas 1, 2 ou 3 Arbres Red Black (Suppression) Les arbres Rouge et Noir

43 P X Soit X le noeud doublement noir CAS 0: X est la racine de l’arbre X X devient simplement un noeud noir. C’est le seul cas ou la hauteur de l’arbre diminue. Le processus se termine. Arbres Red Black (Suppression) Les arbres Rouge et Noir

44 Arbres Red-Black (Analyse théorique) la profondeur maximale d'un arbre binaire équilibré est 2*Log 2 (n) Recherche, insertion et suppression : O(Log 2 (n)) Operations de maintenance : - Restructuration et coloration. - Insertion : au plus 1 restructuration et au plus Log 2 (n) colorations. - suppression : au plus 2 restructurations et au plus Log 2 (n) colorations. N : nombre d’élements insérés. Les arbres Rouge et Noir


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

Présentations similaires


Annonces Google