structures de donn es avanc es arbres avl arbres rouge et noir n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Structures de données avancées : Arbres AVL & Arbres Rouge et Noir PowerPoint Presentation
Download Presentation
Structures de données avancées : Arbres AVL & Arbres Rouge et Noir

Loading in 2 Seconds...

play fullscreen
1 / 44

Structures de données avancées : Arbres AVL & Arbres Rouge et Noir - PowerPoint PPT Presentation


  • 170 Views
  • Uploaded on

Structures de données avancées : Arbres AVL & Arbres Rouge et Noir. Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI ) http://zegour.esi.dz email: d_zegour@esi.dz. Les arbres AVL. Arbres AVL. Un arbre AVL est un arbre de recherche binaire équilibré. 0. 80. +1. -1. 70.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Structures de données avancées : Arbres AVL & Arbres Rouge et Noir' - edan-fuller


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
structures de donn es avanc es arbres avl arbres rouge et noir

Structures de données avancées : Arbres AVL & Arbres Rouge et Noir

Pr ZEGOUR DJAMEL EDDINE

Ecole Supérieure d’Informatique (ESI)

http://zegour.esi.dz

email: d_zegour@esi.dz

les arbres avl
Les arbres AVL

Arbres AVL

Un arbre AVLest un arbre de recherche binaire équilibré

0

80

+1

-1

70

86

0

0

+1

0

32

73

82

94

0

0

0

10

45

90

| Profondeur(fg(n) )– Profondeur(fd(n)) | <= 1

Ajouter un champ balance (facteur d'équilibrage ) au niveau de chaque noeud

les arbres avl1
Les arbres AVL

Arbres AVL (Cas de déséquilibre)

0

80

+1

+2

-1

70

86

0

0

+1

+1

0

32

73

82

94

0

+1

0

0

10

45

90

0

5

les arbres avl2
Les arbres AVL

Arbres AVL (Cas de déséquilibre)

0

80

+1

+2

-1

70

86

0

0

-1

+1

0

32

73

82

94

0

0

-1

0

10

45

90

0

55

les arbres avl3
Les arbres AVL

Arbres AVL (Techniques d'équilibrage )

Examinons un sous arbre de racine le plus jeune antécédent qui devient non équilibré suite à une insertion

+1

A

0

B

T3

h=n

T1

T2

h=n

h=n

Cas où le facteur d'équilibrage est +1

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

les arbres avl4
Les arbres AVL

Arbres AVL (Techniques d'équilibrage )

Examinons un sous arbre de racine le plus jeune antécédent qui devient non équilibré suite à une insertion

+1

A

0

B

T4

C

0

h=n

T1

Cas où le facteur d'équilibrage est +1

h=n

T2

T3

h=n-1

h=n-1

Le nouveau nœud est inséré dans le sous arbre droit de B. f(B) devient -1 et f(A) devient 2.

B

les arbres avl5
Les arbres AVL

Arbres AVL (Techniques d'équilibrage )

Transformer l'arbre de telle sorte que

l'inordre soit préservé

l'arbre transformé soit équilibré

les arbres avl6
Les arbres AVL

Arbres AVL (Techniques d'équilibrage )

+2

A

(a) rotation droite du nœud A

+1

B

T3

0

B

h=n

T1

T2

0

A

T1

h=n

h=n

h=n

T3

T2

h=n

B

B

h=n

les arbres avl7
Les arbres AVL

Arbres AVL (Techniques d'équilibrage )

(b) rotation gauche du nœud B suivie par une rotation droite du nœud A

+2

A

0

C

-1

B

T4

0

-1

B

A

C

0

h=n

T1

T2

T4

T1

T3

h=n

T2

T3

h=n-1

h=n-1

h=n

h=n

B

h=n-1

h=n-1

B

les arbres avl8
Les arbres AVL

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 avl9
Les arbres AVL

Arbres AVL (Rotation gauche)

P

P

Rotation gauche(N)

N

D

G

D

N

DD

DG

DD

G

DG

AFF_FD(N, DG)

AFF_FG(D, N))

AFF_FG(Parent, D)

les arbres avl10
Les arbres AVL

Arbres AVL (Rotation droite)

P

P

Rotation droite (N)

N

G

G

D

GG

N

GG

GD

GD

D

AFF_FG(N, GD)

AFF_FD(G, N))

AFF_FD(Parent, G)

les arbres avl11
Les arbres AVL

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

B

A

A

X

B

X

les arbres avl12
Les arbres AVL

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

B

B

A

X

A

M

L

L

X

M

les arbres avl13
Les arbres AVL

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

L

B

B

M

A

M

A

X

C

L

X

X

les arbres avl14
Les arbres AVL

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

L

L

B

M

B

M

A

C

X

X

A

D

D

C

E

E

les arbres avl15
Les arbres AVL

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

L

D

R

B

M

X

D

E

A

C

H

les arbres avl16
Les arbres AVL

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

B a une balance égale à + 1

B a une balance égale à – 1

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 avl17
Les arbres AVL

Arbres AVL (Suppression)

B a une balance égale à + 1

0

+2

B

A

+1

0

B

n

A

n-1

n

n-1

n-1

n-1

les arbres avl18
Les arbres AVL

Arbres AVL (Suppression)

B a une balance égale à -1

Cas Balance (C)= 0

+2

+2

A

A

-1

-1

B

B

n-1

n-1

C

0

n-1

n

n-1

n-1

n-1

B a donc un fils à sa droite, soit C.

les arbres avl19
Les arbres AVL

Arbres AVL (Suppression)

B a une balance égale à -1 , C son fils droit avec Balance(C)=0

0

+2

A

C

0

-1

0

B

n-1

A

B

C

0

n-1

n-1

n-1

n-1

n-1

n-1

n-1

les arbres avl20
Les arbres AVL

Arbres AVL (Suppression)

B a une balance égale à -1

Balance (C)= +1

+2

+2

A

A

-1

-1

B

B

n-1

n-1

C

+1

n-1

n-1

n

n-1

n-2

B a donc un fils à sa droite, soit C.

les arbres avl21
Les arbres AVL

Arbres AVL (Suppression)

B a une balance égale à -1 , C son fils droit avec Balance(C)=+1

+2

0

A

C

-1

-1

B

0

n-1

A

B

C

+1

n-1

n-2

n-1

n-1

n-1

n-1

n-2

les arbres avl22
Les arbres AVL

Arbres AVL (Suppression)

B a une balance égale à -1

Balance (C)= -1

+2

+2

A

A

-1

-1

B

B

n-1

n-1

C

-1

n-1

n-1

n

n-2

n-1

B a donc un fils à sa droite, soit C.

les arbres avl23
Les arbres AVL

Arbres AVL (Suppression)

B a une balance égale à -1 , C son fils droit avec Balance(C)=-1

+2

A

0

C

-1

B

0

n-1

+1

A

B

C

-1

n-1

n-1

n-1

n-1

n-2

n-2

n-1

les arbres avl24
Les arbres AVL

Arbres AVL (Suppression)

B a une balance égale à 0

-1

+2

B

A

0

+1

B

n

A

n-1

n

n

n

n-1

les arbres avl25
Les arbres AVL

Arbres AVL (Analyse théorique)

la profondeur maximale d'un arbre binaire équilibré est 1.44*Log2n

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
slide28

Les arbres Rouge et Noir

Arbre 2-4

37

Arbre rouge et noir

50

30

70

39

35

10

33

20

36

40

90

38

60

32

34

80

100

slide29

Les arbres Rouge et Noir

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 .

De plus, toutes les branches issues de tout nœud :

Ne possèdent pas deux nœuds rouges consécutifs.

Possèdent le même nombre de nœuds noirs

La racine est noir

- 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.

slide30

Les arbres Rouge et Noir

Arbres Red Black (Insertion)

Insertion comme dans un arbre de recherche binaire.

Le nœud inséré est toujours une feuille

On lui attribue la couleur rouge

Si son père est aussi rouge, un algorithme de maintenance est appliqué

slide31

Les arbres Rouge et Noir

Arbres Red Black(Insertion)

CAS 1: le frère F de P est rouge

PP

PP

P

F

P

F

X

X

X : nœud introduit

Les nœuds P et F deviennent noirs et leur père PP devient rouge.

Le processus continue en cascade

slide32

Les arbres Rouge et Noir

Arbres Red Black(Insertion)

CAS 2: le frère F de P est noir et X est le fils gauche de P.

PP

P

P

F

X

PP

X

DP

DP

F

Rotation droite du nœud PP.

P devient noir et PP rouge.

Le processus se termine

slide33

Les arbres Rouge et Noir

Arbres Red Black(Insertion)

CAS 3: le frère F de P est noir et X est le fils droit de P.

PP

X

P

F

P

PP

X

F

A

B

A

B

Rotation gauche du nœud P + rotation droite du nœud PP.

X devient noir et PP rouge.

Le processus se termine

slide34

Les arbres Rouge et Noir

Arbres Red Black(Insertion)

CAS 4: le nœud père P est la racine de l'arbre

P

P

X

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

slide35

Les arbres Rouge et Noir

Arbres Red Black (Exemple)

Insérer 13

13

Insérer 10

13

10

Insérer 5

Couleur du frère de P= noir

Et X = fg(P)

13

10

P

10

5

13

Rotation

X

5

slide36

Les arbres Rouge et Noir

Arbres Red Black(exemple)

Insérer 2

PP

PP

PP

10

Couleur du frère de P= rouge

10

Coloration

10

P

P

P

5

13

5

13

5

13

Coloration

2

X

2

X

2

X

slide37

Les arbres Rouge et Noir

Arbres Red Black (exemple)

Insérer 4

10

10

Couleur du frère de P= noir

ET X = fd(P) ET P=FG(PP)

PP

4

13

5

13

2

5

P

2

Double rotation

X

4

slide38

Les arbres Rouge et Noir

Arbres Red Black (Suppression)

Suppression comme dans un arbre de recherche binaire.

Si le nœud physiquement supprimé est noir, un algorithme de maintenance est appliqué.

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.

slide39

Les arbres Rouge et Noir

CAS 1: Le frere F de X est noir et a deuxfils noirs

Arbres Red Black (Suppression)

Soit X le noeuddoublement noir (Supposéicicomme un fils gauche) et P son père

P

P

Transformer F en un noeud rouge

P

X

F

X

F

P

P

P

P

X

F

X

F

Si le parent P est noir, le processus continue en remontantdansl’arbre. X devient le nouveau noeuddoublement noir.

slide40

Les arbres Rouge et Noir

CAS 2: Le frère F du noeud X est noir et a un filsdroit rouge (FD)

Arbres Red Black (Suppression)

P

F

P

FD

X

F

P

A

FD

X

A

B

C

Rotation gauche de P

B

C

  • Recolorer : P et FD deviennent noirs et la couleur de F estcelle de P avant la transformation.

Le processus se termine

slide41

Les arbres Rouge et Noir

CAS 3: si le frere F du noeud X est noir et a un fils gauche rouge(FG)

Arbres Red Black (Suppression)

P

FG

P

X

F

P

F

FG

X

A

B

A

B

Rotation droite (F) + rotation gauche (P).

Recolorer : P devient noir et la couleur de FG estcelle de P avant la transformation.

  • Le processus se termine
slide42

Les arbres Rouge et Noir

Arbres Red Black (Suppression)

CAS 4: Le frère F de X est rouge

P

S

P

X

S

P

B

A

P

B

X

A

  • Rotation droite(P)
  • Le processus continue selon le cas 1, 2 ou 3
slide43

Les arbres Rouge et Noir

Arbres Red Black (Suppression)

CAS 0: X est la racine de l’arbre

Soit X le noeuddoublement noir

P

X

X

X devientsimplement un noeud noir.

  • C’est le seulcasou la hauteur de l’arbrediminue. Le processus se termine.
slide44

Les arbres Rouge et Noir

Arbres Red-Black (Analyse théorique)

  • Operations de maintenance :
  • - Restructuration et coloration.
  • Insertion : au plus 1 restructuration et au plus Log2 (n) colorations.
  • suppression : au plus 2 restructurations et au plus Log2 (n) colorations.
  • N : nombred’élementsinsérés.

la profondeur maximale d'un arbre binaire équilibré est 2*Log2(n)

Recherche, insertion et suppression : O(Log2(n))