Académique Documents
Professionnel Documents
Culture Documents
2 ÉME ANNÉE II
CHAPITRE 3:
ARBRES DE RECHERCHE
2023/2024
PLAN DU CHAPITRE I
❑ Partie I: Introduction
2
PARTIE I:
INTRODUCTION
PLAN DE LA PARTIE I
❑ Introduction
❑ Définitions et Terminologies
❑ Topologie
❑ Parcours
4
I. INTRODUCTION
❖ Les arbres sont des structures de données fondamentales en informatique,
très utilisés dans tous les domaines, parce qu’ils sont bien adaptés à la
❖ Leur usage est multiple, car il capte l’idée de hiérarchie; à titre d’exemples,
5
I. INTRODUCTION
❖ Leur usage est multiple, car il capte l’idée de hiérarchie; à titre d’exemples,
Livre
PI P II P III
S II.1.1 S II.1.2 6
I. INTRODUCTION
❖ Leur usage est multiple, car il capte l’idée de hiérarchie; à titre d’exemples,
❖ Hiérarchies de fichiers,
7
I. INTRODUCTION
❖ Leur usage est multiple, car il capte l’idée de hiérarchie; à titre d’exemples,
❖ Expressions Arithmétiques
▪ L’expression A - (B + C * (D - E)) * F se A *
représente facilement par un arbre où apparaît + F
clairement la priorité des opérations:
B *
C -
8
D E
I. DÉFINITIONS & TERMINOLOGIES
❖ Un arbre est une structure de données (souvent dynamique) représentant un ensemble
de valeurs organisées hiérarchiquement (non linéaire). Chaque valeur est stockée dans
un nœud. Les nœuds sont connectés entre eux par des arêtes qui représentent des
relations parent/fils.
Arêtes Nœuds
A
B C D
E F G H I
9
J K L
I. DÉFINITIONS & TERMINOLOGIES
❖ Racine: est le nœud qui n'a pas de
Racine
prédécesseur (parent) et possède zéro ou A
Nœud interne
plusieurs fils. La racine constitue la
B C D
caractéristique d'un arbre.
E F G H I
❖ Feuille : est un nœud qui n'a pas de
des nœuds F, G, H et I. A
Père
❖Fils d’un nœud : sont ses successeurs. Dans
B C D
J K L
d'un même nœud (parent direct). Dans
11
A-B-E J K L
A-C
A-D-F
A-D-G-J 12
…..
I. DÉFINITIONS & TERMINOLOGIES
❖ Descendants d’un nœud : sont tous les
I, J, K et L.
B C D
B et A.
I. DÉFINITIONS & TERMINOLOGIES
❖ Taille d’un arbre: est le nombre de nœuds
qu’il possède.
de D est 4.
J K L
❖ Degré (ou Ordre) d’un arbre : est le degré
maximum de ses nœuds.
14
Le niveau de la racine = 0
Le niveau de chaque nœud est égale au niveau de son père plus 1
Le niveau du nœud contenant ‘G' est égal à 2.
Niveaux Racine
0 ………………………………....... A
1 .…………………………………………….......
B C D
2 E F
………………..…………………………………………….......
G H I
15
3 …..…………..…………………………………………….......
J K L
I. DÉFINITIONS & TERMINOLOGIES
❖ La profondeur (hauteur) d'un arbre : est le plus grand niveau, c.à.d la distance
Niveaux Racine
0 ………………………………....... A
1 .…………………………………………….......
B C D
2 E F
………………..…………………………………………….......
G H I
16
3 …..…………..…………………………………………….......
J K L
I. DÉFINITIONS & TERMINOLOGIES
❖ Forêt : est un ensemble d'arbres.
B C D
E F H I
G L
J K
17
I. TYPOLOGIE
❖Les arbres sont classifiés selon:
leur degré m≥2: On trouve les arbres binaires (m = 2), ternaires (m=3), quaternaires
✔ le nœud père possède au moins une clé, les valeurs de sous arbre gauche (droit resp.)
de la clé sont strictement inférieures (supérieures ou égales resp.) à la valeur de la clé.
On parle ici des arbres binaires de recherche (où chaque nœud possède une clé) et des
arbres m-aire de recherche (où chaque nœud possède (m-1) clé),
✔ la valeur du nœud père est supérieure (inférieure resp.) à la valeur de ses fils. On parle
18
ici du TASmax (TASmin)
I. TYPOLOGIE
❖Les arbres sont classifiés selon:
équilibrés (e.g: AVL, TAS, rouge et noir, 2-3-4, …..) et les arbre m-aire de
19
I. PARCOURS
❖ Le parcours d’un arbre consiste à passer par tous ses nœuds.
arbres.
l’arbre puis, une fois qu’une feuille a été atteinte, on remonte pour explorer les
❖Inordre (Infixe) : où, dans le cas d’un arbre binaire, on affiche le fils gauche avant21sa
racine et son frère droit,
PARTIE II:
ARBRES BINAIRES DE RECHERCHE
(ABR)
PLAN DE LA PARTIE II
❑ Définitions
❑ Parcours
23
II. DÉFINITION
❖Un Arbre Binaire est un arbre de degré 2, c’est-à-dire que chaque nœuds a au plus
deux fils. Ainsi, le premier fils d'un nœud est appelé Fils-Gauche (FG) et le deuxième
24
II. DÉFINITION
❖ Un Arbre Binaire de Recherche (ABR) est un arbre binaire ordonné tel
que pour tout nœud « i »:
25
II. PARCOURS PREORDRE
❖Le parcours préordre d’un arbre binaire R consiste à visiter le nœud racine (R)
T1 T2
26
Résultat de parcours:
8, 3, 1, 6, 4, 7, 10, 14, 13
27
II. PARCOURS INORDRE
❖ Le parcours inordre d’un arbre binaire R consiste d'abord à parcourir
récursivement en inordre le sous arbre gauche T1, puis visiter le nœud racine
donne [ T1 , R , T2 ou GRD ]
R
T1 T2
28
récursivement en inordre le sous arbre gauche T1, puis visiter le nœud racine
donne [ T1 , R , T2 ou GRD ]
Résultat de parcours:
1, 3, 4, 6, 7, 8, 10, 13, 14
T1 T2
30
Résultat de parcours:
1, 4, 7, 6, 3, 13, 14, 10, 8
31
II. PARCOURS EN LARGEUR
❖ Dans le parcours par niveau, tous les nœuds d’un même niveau sont traités
Si la clé « x » est strictement inférieure, alors la recherche est poursuivie dans le sous
arbre gauche.
Si la clé « x » est strictement supérieure, alors la recherche est poursuivie dans le sous
33
arbre droit.
II. OPÉRATION DE RECHERCHE
❖ La recherche est dichotomique, à chaque étape, un sous arbre est éliminé:
Rechercher (55)
Rechercher (FD(20))
55 ?
Rechercher (FG(59)) 20
15 59
Rechercher (FD(27))
5 27 71
Rechercher (FD (33))
Élément trouvé 3 10 33
55
8 34
52
II. OPÉRATION D’INSERTION
❖ L'insertion d'une clé « x » se fait toujours au niveau d'une feuille. Cette
recherche, ainsi:
35
II. OPÉRATION D’INSERTION
+ 25
20
15 59
RechercherPosition (25) 5 27 71
Rechercher (FD(20)) 3 33
10 25
Rechercher (FG(59)) 55
8
Position trouvé pour l’insertion, le père est le nœud 27
52
36
II. OPÉRATION DE SUPPRESSION
❖ La suppression d’une clé « x » passe par deux étapes:
37
II. OPÉRATION DE SUPPRESSION
❖ Cas 1: Suppression d'une feuille
1. Rechercher(8) 20
2. Libérer le nœud « i » 15 59
5 27 71
3 10 33
«i» 12 55
8 38
52
II. OPÉRATION DE SUPPRESSION
❖ Cas 2: Suppression d'un nœud avec un fils
1. Rechercher(10) 20
3. Libérer le nœud « i » 5 27 71
3 10 33
«i»
12 55 39
52
II. OPÉRATION DE SUPPRESSION
❖ Cas 2: Suppression d'un nœud avec un fils
3 10 33
55 40
8
52
II. OPÉRATION DE SUPPRESSION
❖ Cas 3: Suppression d'un nœud avec deux fils
Etape 1: On échange le nœud à supprimer avec son successeur le plus proche (le
nœud le plus à gauche du sous-arbre droit) ou son plus proche prédécesseur (le nœud
le plus à droite du sous-arbre gauche). Cela permet de garder la propriété d’ordre d‘ABR.
34
22 66
8 29 50 71
Le plus proche 56 70 81
17 25 prédécesseur
55 69 41
9 23 32
Le plus proche
successeur
II. OPÉRATION DE SUPPRESSION
❖ Cas 3: Suppression d'un nœud avec deux fils
Etape 1 🡪 Cas A: On échange le nœud à supprimer avec son successeur le plus
proche (le nœud le plus à gauche ou le plus petit du sous arbre droit)
▪ Racine: 71
34
22 66
8 29 50 71
17 25 56 70 81
42
9 23 32 55 69
II. OPÉRATION DE SUPPRESSION
❖ Cas 3: Suppression d'un nœud avec deux fils
Etape 2: on applique à nouveau la procédure de suppression qui est maintenant une
feuille ou un nœud avec un seul fils.
22 66
69
8 29 50 71
17 25 56 70 81
9 23 32 55 69
43
II. OPÉRATION DE SUPPRESSION
❖ Cas 3: Suppression d'un nœud avec deux fils
Etape 1 🡪 Cas B: On échange le nœud à supprimer avec son plus proche
prédécesseur (le nœud le plus à droite ou le plus grand du sous-arbre gauche).
▪ Racine: 50
34
22 66
8 29 50 71
17 25 56 70 81
44
9 23 32 55 69
II. OPÉRATION DE SUPPRESSION
❖ Cas 3: Suppression d'un nœud avec deux fils
Puis on applique à nouveau la procédure de suppression qui est maintenant une feuille ou
un nœud avec un seul fils.
22 66
56
8 29 50 71
56 70 81
17 25
55 69
9 23 32
45
II. OPÉRATION DE SUPPRESSION
❖ En conclusion, pour supprimer le nœud « i » d’un ARB, on rencontre une des
situations suivantes :
❑ Définition
❑ Techniques d’équilibrage
❑ Opérations de Base: Recherche, Insertion et Suppression
❑ TAS
❑ Définition
❑ Opérations de Base: Insertion, Recherche et Suppression
48
❑ Implémentation
III. AVL: INTRODUCTION
❖ Intérêt des ABR équilibrés est de diminuer la complexité temporelle des
opérations de la recherche, de l’insertion et de la suppression dans un ABR
quelconque.
Filiforme
ABR Equilibré
87 ?
49
Nombre maximum de nœuds parcourus Nombre maximum de nœuds parcourus
≈ log2(n) =n
III. AVL: DÉFINITION
❖ Les arbres AVL ont été introduits par les finlandais Adelson- Velskii et
Landis dans les années 60.
|Profondeur(FG(R) ) – Profondeur(FD(R)) | ≤ 1
les sous arbres gauches et droits d'un nœud sont des arbres AVL.
insertion/suppression.
III. AVL: DÉFINITION
❖ Exemple: soit l’ABR suivant. Est-il un arbre AVL?
Rappelons:
▪que l’arbre vide a la 2 – 1 = +1 100
hauteur −1,
1 – 0 = +1 0 – (-1) = +1
▪Et qu’une feuille est 50 200
+1 10 40
05
Cet arbre n’est pas un arbre AVL après insertion de 5 52
🡪 arbre déséquilibré
III. AVL: TECHNIQUES D’ÉQUILIBRAGE
❖ L’opération d’équilibrage, appelée rotation, s’applique à tous les ABR dans le
droite», i.e. son sous-arbre droit est plus haut que son sous-arbre gauche.
❖ Les rotations préservent l’ordre des données d’un ABR (parcours inordre).
53
III. AVL: TECHNIQUES D’ÉQUILIBRAGE
❖ Rotation simple : Rotation droite
Z
(hauteur
h/h-1)
X
Y (hauteur
h+1/h)
X (hauteur
h/h)
Y Z
(hauteur (hauteur (hauteur 54
h+1/h) h/h) h/h-1)
Déséquilibre gauche
III. AVL: TECHNIQUES D’ÉQUILIBRAGE
❖ Rotation simple : Rotation gauche
-1 ou 0 0 ou -1 R
P
X
(hauteur
h/h-1) Z
Y (hauteur
(hauteur Z X Y h+1/h)
h) (hauteur (hauteur h)
(hauteur h/h-1)
h+1/h) 55
Déséquilibre droit
III. AVL: TECHNIQUES D’ÉQUILIBRAGE
❖ Rotation double : gauche-droite
C’est une rotation gauche sur le sous arbre-gauche du nœud R suivie d’une
rotation droite sur le nœud R
Rotation gauche Rotation droite
+2 R R Q
+2 0
-1 P Q P R
D D
Q (h) P (h)
A A
(h) C B C D
(h) (h)
A B
B C (h)
56
((A, P, (B, Q, C)), R, D) → (((A, P, B), Q, C), R, D) → ((A, P, B), Q, (C, R, D))
III. AVL: TECHNIQUES D’ÉQUILIBRAGE
❖ Rotation double : droite-gauche
C’est une rotation droite sur le sous arbre-droit du nœud R suivie d’une
rotation gauche sur le nœud R
Rotation droite Rotation gauche
-2 R R
Q
-2
0
P Q
A R P
+1
A (h)
(h) Q P
D B
(h)
A B C D
(h) (h)
B C C D
(h)
57
(A, R, ((B, Q, C), P, D)) → (A, R, (B, Q, (C, P, D))) → ((A, R, B), Q, (C, P, D))
III. AVL: TECHNIQUES D’ÉQUILIBRAGE
❖ En résumé, il y a 4 types de rotation
P = FD(R)
Donc, pour rétablir l’équilibre (rééquilibrer) de l’arbre après une insertion, une
l’arbre égale à ± 2.
60
III. AVL: INSERTION
❖ Exemple: soit la série de nombres à insérer dans un arbre AVL
(2 10 12 4 16 8 6 14 9 1 7)
2 10 12 4 16 8 6 14 2 10 12 4 16 8 6 14
0 R -2
2 2
-1
P 1
2 10 12 4 16 8 6 14 0
Rotation simple à gauche
2 -1 1 0
2
P
1 0 1
0 0 61
R 1
2
2
III. AVL: INSERTION
❖ Exemple: soit la série de nombres à insérer dans un arbre AVL
2 10 12 4 16 8 6 14 2 10 12 4 16 8 6 14
1
1 1 0
0 0
2 -1 1 2 1 -1
2 2
4 0 4 1 0
6
62
III. AVL: INSERTION
❖ Exemple: soit la série de nombres à insérer dans un arbre
2 10 12 4 16 8 6 14 9 1 7
1
0 1
P 0
R 2 -2 1
2 Rotation 4 1
simple 2
-1
1
À gauche
P 4
6 R 2 8 1
6
63
8 0
III. AVL: INSERTION
❖ Exemple: soit la série de nombres à insérer dans un arbre AVL
2 10 12 4 16 8 6 14 9 1 7
1
1
0
4 -1 1
2
2 8 1 1
6
64
6 0
III. AVL: INSERTION
❖ Exemple: soit la série de nombres à insérer dans un arbre AVL
2 10 12 4 16 8 6 14 9 1 7
1 1
0 Q
0 R
1 -2 4 1 0
4 Rotation 4
2
double R P
P
Droite
2 8 1 1 2 8 1 1
gauche 2 6
6
Q
6 1 0 6 65
4
III. AVL: INSERTION
❖ Exemple: soit la série de nombres à insérer dans un arbre AVL
2 10 12 4 16 8 6 14 9 1 7
2
10
10
4 -1 14
4 14 Insertion
du 7 1
2 8 1 12 16
2 8 12 16
0
1 6 -1 9 0
1 6 9
7 66
0
Nœud inséré
III. AVL: INSERTION
❖ Exemple: soit la série de nombres à insérer dans un arbre AVL
2 10 12 4 16 8 6 14 9 1 7
R
Q
2
10 8
P
4 -1 14 R
P
Rotation
Q 4 10
double
1
2 8 1 12 16
Gauche
droite 14
2 6 9
0
1 6 -1 9 0
12 16 67
1 7
7
0 Nœud inséré
III. AVL: INSERTION
Après insertion à gauche Avant Après insertion à droite
+1 R 0 R -1 R
h+1 h h h h h+1
+2 Cas A +1 R 0 R
R
-1 R -2 Cas B
0 R R
h h+1 h h+2
h+1 h+1 68
III. AVL: INSERTION
❖ Remarques:
Après une insertion, seules les nœuds ascendants (qui sont sur le chemin
Cas A: L’arbre devient non équilibré quand le nouveau nœud inséré est un
Cas B: L’arbre devient non équilibré quand le nouveau nœud inséré est un
Avant
+1 R
0 P
h
+2 R h h +2 R
+1 P -1 P
h h
h+1 h h h+1
0 P
h
h h
-2 R -2 R
+1 P -1 P
h h
h+1 h h h
ou supérieur.
de 1. Le problème est que cet arbre n’est plus forcément un arbre AVL. Il faut
donc le rééquilibrer.
72
III. AVL: SUPPRESSION
❖ S’il y a déséquilibre, la rotation appliquée peut diminuer à son tour la hauteur
73
III. AVL: SUPPRESSION
❖ Exemple: soit l’arbre suivant. Donner le résultat après la suppression de 10:
Remplacer par
0 0
8 le successeur 8
0 -1 -1
4 10 4 12
-1
1 14 0
14
2 6 -1 9 0
2 6 9
0
1 12 16 0
1 16
7 0 0 7
74
III. AVL: SUPPRESSION
❖ Exemple: soit l’arbre suivant. Donner le résultat après la suppression de 10:
Remplacer par
0
8 le prédécesseur 8
R
-1 – 1 = -2 !!!!!
4
0 -1 4 9
10
P 14 0
1 14 0
2 6
2 6 -1 9 0
12 16 1 12 16
0
1 7 0 0
0 7
75
III. AVL: SUPPRESSION
❖ Exemple: soit l’arbre suivant. Donner le résultat après la suppression de 10:
2–2=0
8 8
RSG
R
4 9
-1 – 1 = -2 !!!!! 4 14
P 14 0
9 16
2 6 2 6
12 16 1 7 12
1 7
76
III. AVL: SUPPRESSION
❖ Exemple: soit l’arbre suivant. Donner le résultat après la suppression de 8:
Remplacer par
0
8 le successeur 9
0 -1 -2
4 12 4 12
1 14 -1
14 -1
2 6 -1 9 0
2 6
0
1 16 0
1 16
7 0
7
77
III. AVL: SUPPRESSION
❖ Exemple: soit l’arbre suivant. Donner le résultat après la suppression de 8:
9 9
RSG
0
4 -2 4 14
12
14 -1
2 6 12 16
2 6
1 16 1 7
7
78
III. AVL: SUPPRESSION
❖ Exemple: soit l’arbre suivant. Donner le résultat après la suppression de 12
puis 16:
1
9 9
+2
0 0 0
4 14 4 14
0 0
1
2 6 -1 12 16
2 6
0
1 7 0
1 7
79
III. AVL: SUPPRESSION
❖ Exemple: soit l’arbre suivant. Donner le résultat après la suppression de 12
puis 16:
+2
9 -1
4
RSD
0
4 14 2 9
2 6 1 6 14
1 7 7
80
III. AVL: SUPPRESSION
❖ Exemple: soit l’arbre suivant. Donner le résultat après la suppression de 30:
+1
Remplacer par +2
30 100
+1
le successeur 40 100
0
-1
-1
10 40 80 +1 200 -1
10 80 200
0 0
0
20 70 90 300 0
20 70 90 300
+1
60 81
60 0
III. AVL: SUPPRESSION
❖ Exemple: soit l’arbre suivant. Donner le résultat après la suppression de 30:
50 -2
50
+2 RDG-D
40 100 +1
20 100
-1
10 80 200
10 40 80 +1 200
0
20 70 90 300
70 90 300
60 82
60
III. AVL: SUPPRESSION
❖ Exemple: soit l’arbre suivant. Donner le résultat après la suppression de 30:
-2 0
50 80
RDD-G
+1
20 100 50 100
10 40 80 +1 200 20 70 90 200
70 90 300 10 40 60 300
83
60
III. AVL: SUPPRESSION
❖ Exemple: soit l’arbre suivant. Donner le résultat après la suppression de 30:
0
-1 10 40 80 +1 200
-1
10 40 80 +1 200 Q
0 0 70 90 300
20 70 90 300 0
+1
60
84
60 0
III. AVL: SUPPRESSION
❖ Exemple: soit l’arbre suivant. Donner le résultat après la suppression de 30:
R 1 – 3 = -2
50 0
80
P
RDD-G
+1
20 100 50 100
10 40 80 +1 200
Q 20 70 90 200
70 90 300
10 40 60 300
85
60
PLAN DE LA PARTIE III
❑ AVL
❑ TAS
❑ Définition
❑ Opérations de Base: Insertion, Recherche et Suppression
❑ Implémentation
86
III.TAS: DÉFINITION
❖ Un TAS (HEAP) inventé par Williams Floyd en 1964, est un arbre binaire qui
vérifie les deux propriétés suivantes :
Propriété structurelle: arbre binaire parfait, i.e. Tous les niveaux sont
totalement remplis sauf le dernier qui est rempli de la gauche vers la
droite.
Propriété d’ordre :
4 Minimum
5 6
15 9 7 20
16 25 14 12 11 8 88
Maximum
III.TAS: DÉFINITION
❖ Exemple d’un TASmax
40 Maximum
35 26
15 19 17 20
89
1 13 14 12 11 8
Minimum
III.TAS: INSERTION
❖ Pour insérer une valeur « v » dans un TASmin [ou TASmax]
90
III.TAS: INSERTION
❖ Exemple: Soit le TASmin suivant. Donner le résultat après l’insertion 5, 17, 3,
18
6
9
15 10 7 20
16 25 14 12 11 8
91
III.TAS: INSERTION
❖ Exemple: Soit le TASmin suivant.
Insertion 5
6
9
15 10 7 20
16 25 14 12 11 8 5
92
III.TAS: INSERTION
❖ Exemple: Soit le TASmin suivant.
❖ Insertion 17
5
9
15 10 7 6
16 25 14 12 11 8 20 17
93
III.TAS: INSERTION
❖ Exemple: Soit le TASmin suivant.
❖ Insertion 3
5
9
15 10 7 6
16 25 14 12 11 8 20 17
94
3
III.TAS: INSERTION
❖ Exemple: Soit le TASmin suivant.
❖ Insertion 18
5
4
9 10 7 6
15 25 14 12 11 8 20 17
95
16 18
III.TAS: RECHERCHE
❖ Pour rechercher une valeur « v » dans un TAS min [ou TASmax], on doit
96
III.TAS: RECHERCHE
❖ Exemple: Soit le TASmin suivant.
7?
6
9
15 10 7 20
16 25 14 12 11 8
97
La valeur existe, fin de recherche
III.TAS: RECHERCHE
❖ Exemple: Soit le TASmin suivant.
8?
6
9
15 10 7 20
16 25 14 12 11 8
98
La valeur existe, fin de recherche
III.TAS: RECHERCHE
❖ Exemple: Soit le TASmin suivant.
3?
6
9
15 10 7 20
16 25 14 12 11 8
99
La valeur n’existe pas , fin de recherche
III.TAS: RECHERCHE
❖ Exemple: Soit le TASmin suivant.
30 ?
6
9
15 10 7 20
16 25 14 12 11 8
100
Fin de recherche, la valeur n’existe pas
III.TAS: SUPPRESSION
❖ Pour supprimer une valeur « v » dans un TASmin [ou TASmax]
101
III.TAS: SUPPRESSION
❖ Pour supprimer une valeur « v » dans un TASmin [ou TASmax]
ses fils, échanger la valeur « x » avec celle du plus petit [grand] de ses
fils.
102
III.TAS: SUPPRESSION
❖ Exemple: Soit le TASmin suivant. Donner le résultat après la suppression de
9, 16, 6 et 4.
6
9
15 10 7 20
16 25 14 12 11 8
103
III.TAS: SUPPRESSION
❖ Exemple: Soit le TASmin suivant.
Suppression de 9.
6
9
15 10 7 20
16 25 14 12 11 8
104
III.TAS: SUPPRESSION
❖ Exemple: Soit le TASmin suivant.
Suppression de 9, 16.
6
8
15 10 7 20
16 25 14 12 11
105
III.TAS: SUPPRESSION
❖ Exemple: Soit le TASmin suivant.
Suppression de 16.
6
8
15 10 7 20
11 25 14 12
106
III.TAS: SUPPRESSION
❖ Exemple: Soit le TASmin suivant.
Suppression de 6.
6
8
11 10 7 20
15 25 14 12
107
III.TAS: SUPPRESSION
❖ Exemple: Soit le TASmin suivant.
Suppression de 6.
12
8
11 10 7 20
15 25 14
108
III.TAS: SUPPRESSION
❖ Exemple: Soit le TASmin suivant.
Suppression de 4.
7
8
11 10 12 20
15 25 14
109
III.TAS: SUPPRESSION
❖ Exemple: Soit le TASmin suivant.
Suppression de 4.
14
7
8
11 10 12 20
15 25
110
III.TAS: SUPPRESSION
❖ Exemple: Soit le TASmin suivant.
Suppression de 4.
12
8
11 10 14 20
15 25
111
III.TAS: IMPLÉMENTATION
❖ Un TAS se représente naturellement par un tableau:
1 4
2 3
6
5
4 5 6 7
15 9 7 20
8 9
16 25 14 12 11 8
10 11 12 13
112
1 2 3 4 5 6 7 8 9 10 11 12 13
4 5 6 15 9 7 20 16 25 14 12 11 8
III.TAS: IMPLÉMENTATION
❖ On parle ici de la représentation statique séquentielle d’un arbre binaire
La case 0 est vide
Indice(racine)=1
Indice(FG)=2*Indice(Père)
Indice(FD)=2*Indice(Père)+1
0 1 2 3 4 5 6 7 8 9 10 11 12 13
?? 4 5 6 15 9 7 20 16 25 14 12 11 8
113
PARTIE IV:
115
IV. DÉFINITION
❖ Un Arbre M-aire de Recherche (AMR) peut être défini comme une
❑ au lieu d'avoir une clé et deux fils, on aura « m-1 » clés et « m » fils
pointeurs.
ABR AMR
Clé Clé 1 Clé 2 ……… Clé m-2 Clé m-1
Fils Gauche Fils Droit
116
IV. DÉFINITION
❑ Si f1, f2, ... fm sont les « m » fils issus d'un nœud donné avec les clés k 1, k2,
....,km-1 dans l'ordre ascendant, alors :
Toutes les clés dans f1 sont inférieures à k1
Toutes les clés dans fj (j=2,3, ...m-1) sont supérieures à kj-1 et inférieures à kj
Toutes les clés dans fm sont supérieures km-1.
118
IV. RECHERCHE
❖ La recherche dans un AMR ressemble beaucoup à celle effectuée dans un ABR,
binaire (Fils gauche ou droit), on prend une décision à options multiples, selon le
❖Soit R la racine. Supposant que chaque nœud contient entre autre, un tableau
de taille m-1 pour les clés et un tableau de taille m pour les pointeurs de fils. La
1 6 10 37 40
170
68
123
IV. SUPPRESSION
❖ Technique similaire à celle des ABR:
a. Si la clé « x » n’a aucun sous arbre (i.e. les deux sous arbres gauche ou
125
Si la clé à supprimer est la seule clé dans la feuille « P » alors libérer la feuille.
IV. SUPPRESSION
❖ Technique similaire à celle des ABR:
b. Si la clé « x » a un seul sous arbre vide alors supprimer la clé, ensuite
tasser (ou organiser) le nœud (décalage ou déplacement des clés et/ou des
fils).
▪ Exemple: la suppression du 120 entraîne le décalage de 150 à la position
de 120.
100 150
110
126
IV. SUPPRESSION
❖ Technique similaire à celle des ABR:
b. Si la clé « x » a un seul sous arbre vide alors supprimer la clé, ensuite
tasser (ou organiser) le nœud (décalage ou déplacement des clés et/ou des
fils).
▪ Exemple: supprimer 65, 62 et 69 de l’arbre ci dessous
1. la suppression du 65 entraîne le décalage
de 69 à la position de 65 ainsi le
déplacement du fils droit de 65.
2. la suppression du 62 entraîne le décalage
de 69 à la position de 62 ainsi le
69 62 69
déplacement du fils gauche de 69. 127
I
68 68 68
IV. SUPPRESSION
❖ Technique similaire à celle des ABR:
b. Si la clé « x » a un seul sous arbre vide alors supprimer la clé, ensuite
tasser (ou organiser) le nœud (décalage ou déplacement des clés et/ou des
fils).
▪ Exemple: supprimer 69 de l’arbre ci dessous
3. la suppression de 69 entraîne la
libération du nœud G et le chaînage du
nœud I avec D.
69 128
12 50 100
120 150
129
110
PARTIE V:
B-ARBRES: AMR EQUILIBRÉS
PLAN DE LA PARTIE V
❑ Introduction
❑ Définition
131
V. INTRODUCTION
❖ Les principaux problèmes avec les AMR sont
❖Bayer et McCreight (en 1970) ont fourni une solution à ces problèmes par
132
V. DÉFINITION
❖Un B-arbre d'ordre m (m est impair, i.e. m= 2*d +1, d≥1) est un AMR qui
cas particuliers:
Insertion dans un nœud déjà plein (possédant 2*d clés, i.e. taux de
50%
134
V. INSERTION
❖ L’insertion se fait toujours au niveau des feuilles.
135
V. INSERTION
❖ Exemple: Considérons le B-arbre suivant d'ordre 3, insérer les valeurs
suivantes dans l’ordre : 55, 57, 95, 85, 87.
136
V. INSERTION
❖ Ainsi, l’insertion de la clé « x » se déroule comme suit:
4. Sinon (le nœud « P » est plein), l’éclatement se fait en cascade (approche
ascendante) comme suit
a. Classer les clés du nœud « P » ainsi que la clé « x » dans l’ordre croissant :
k1, k2, …km; soit kmil la clé du milieu ou la clé médiane
b. Laisser les d plus petites clés (k1 … kmil-1) dans le nœud « P »
c. Déplacer les d plus grandes clés (kmil+1 … km) dans un nouveau nœud (soit
« Q »)
d. Remonter la clé du milieu kmil dans le nœud père (soit « Pere ») de telle sorte
que le nœud « P » se trouvera à sa gauche et « Q » à sa droite.
e. Remplacer « P » par le nœud père « Pere ».
f. Si « P » est différent de Nil aller à 3 (application récursive de ce principe d’
éclatement, éventuellement jusqu’à arriver à la racine),
137
g. Sinon, créer un nouveau nœud contenant la clé du milieu k mil . Ce nœud sera
la nouvelle racine (fin de l’algorithme).
V. INSERTION
❖ Exemple: Considérons le B-arbre suivant d'ordre 3, insérer les valeurs
suivantes dans l’ordre : 55, 57, 95, 85, 87.
57 70 80
90 95 100
P
55 57 60
138
P Q
V. INSERTION
❖ Exemple: Considérons le B-arbre suivant d'ordre 3, insérer les valeurs
suivantes dans l’ordre : 55, 57, 95, 85, 87.
50 70 87
80 87 95
85 87 90
139
V. INSERTION
❖ Exemple: Construire un B-arbre d’ordre 5 à partir des valeurs suivantes:
20 15 10 35 19 13 5 3 12 7 16 40 25 38
+20, +15,
+10, +35, 10 15 20 35 19
+19
10, 15, 19, 20, 35 10 15 20 35
+13, +5, +3
19
5 10 13 15 20 35 140
3, 5, 10, 13, 15
V. INSERTION
❖ Exemple: Construire un B-arbre d’ordre 5 à partir des valeurs suivantes:
+12, +7,
+16, +40,
+25, +38 10 19
10 19 35
3 5 7 12 13 15 16 20 25 38 40
141
V. SUPPRESSION
❖La suppression dans un B-arbre est similaire à la suppression dans un AMR où
on distingue deux cas seulement:
Suppression d’une clé ayant aucun sous arbre (supression au niveau d’une feuille)
Suppression d’une clé ayant deux sous arbres non vide (remplacement par le
successeur/prédécesseur qui se trouve au niveau de feuille)
✔ Impossible de trouver dans un B-arbre un clé ayant un seul sous arbre (vu la
technique d’éclatement utilisée dans l’insertion)
❖ Il faut supprimer l’élément tout en préservant la qualité de B-arbre, c'est à
dire en gardant au moins d clés dans le nœud (non racine).
❖ Ainsi, si le nœud feuille (soit « P » ) qui contenait la clé à supprimer a moins
142
de d clés, alors l'action suivante est entreprise :
V. SUPPRESSION
Cas 1 (Emprunt): Si l'un des frères (gauche ou droit) contient plus de d clés,
alors la clé, soit Ks, dans le nœud père qui sépare entre les deux frères est
ajoutée au nœud « P » et le dernier (si frère gauche) ou le premier élément (si
frère droit) est ajoutée au père à la place de Ks.
▪ Exemple: Supprimer 25 du B-arbre d’ordre 5 suivant:
10 19 35
3 5 7 12 13 16 20 25 38 40 45
10 19 35
3 5 7 12 13 16 20 25 38 40 45
10 19 38
10 16 35 144
20 35 40 45
12 13 19 20
V. SUPPRESSION
Cas 2 (Fusion)-a: Si les deux frères contenaient exactement d clés, le nœud
« P » et l'un de ses frères seront concaténés ( fusionnés ou consolidés) en un seul
nœud qui contient aussi la clé séparatrice de leur père.
▪ Exemple (cas 2-a): Supprimer 35 du B-arbre d’ordre 5 suivant:
10 16 35
3 7 12 13 19 20 38 40
10 16 20
3 7 12 13 19 20 38 40
10 20
2. Fusionner avec le frère droit
3 7 12 13 16 19 38 40
10 16
146
3 7 12 13 19 20 38 40
V. SUPPRESSION
▪ Exemple (cas 2-a): Supprimer 35 du B-arbre d’ordre 5 suivant:
10 16 38
3 7 12 13 19 20 38 40
10 16
147
3 7 12 13 19 20 38 40
V. SUPPRESSION
Cas 2 (Fusion)-b: Il est aussi possible que le père contient seulement d clés et
par conséquent il n'a pas de clé à donner. Dans ce cas, il peut emprunter de son
père et frère.
▪ Exemple : Supprimer 65 du B-arbre d’ordre 5 suivant:
Emprunter une clé
du frère droit
60 170
148
Fusionner avec le frère droit
🡪 Problème au niveau du père
V. SUPPRESSION
▪ Exemple (2-b): Supprimer 65 du B-arbre d’ordre 5 suivant:
60 180
151
V. SUPPRESSION
▪ Exemple (cas 2-d): Supprimer 38 du B-arbre d’ordre 3 suivant
20 A
1 2
B 15 38 C 40 C C
3 12 16 19 35 40 35 35 40
D E F G F G
F
A
3 4 B
20 A 15 20
B 15 C B 15 20 3 12 16 19 35 40
D E F
1. Remplacer par le successeur (40) 152 152
2. Fusionner F et G avec la clé de C
3. Fusionner C et B avec la clé de A
4. Supprimer le nœud A
V. SUPPRESSION
▪ Exemple (cas 2-d): Supprimer 38 du B-arbre d’ordre 3 suivant
20 A
1 2
B 15 38 C 35 C C
3 12 16 19 35 40 40 35 40
D E F G F G
F
A
3 4 B
20 A 15 20
B 15 C B 15 20 3 12 16 19 35 40
D E F
1. Remplacer par le prédécesseur (35) 153 153
2. Fusionner F et G avec la clé de C
3. Fusionner C et B avec la clé de A
4. Supprimer le nœud A
V. SUPPRESSION
▪ Exemple: Supprimer du B-arbre d’ordre 5 ci-dessous les valeurs suivantes:
5, 15, 25, 35, 13, 10 , 20, 40, 38, 12.
10 19 35
3 5 7 12 13 15 16 20 25 38 40
10 16 35
3 7 12 13 19 20 38 40 154 154
V. SUPPRESSION
▪ Exemple: Supprimer du B-arbre d’ordre 5 ci-dessous les valeurs suivantes:
5, 15, 25, 35, 13, 10 , 20, 40, 38, 12.
1. Remplacer par le
successeur 38
10 16 35
3 7 12 13 19 20 38 40
10 16
3 7 12 13 19 20 38 40 155
V. SUPPRESSION
▪ Exemple: Supprimer du B-arbre d’ordre 5 ci-dessous les valeurs suivantes:
5, 15, 25, 35, 13, 10 , 20, 40, 38, 12.
10 16
3 7 12 13 19 20 38 40
10 19
3 7 12 16 20 38 40
156
V. SUPPRESSION
▪ Exemple: Supprimer du B-arbre d’ordre 5 ci-dessous les valeurs suivantes:
5, 15, 25, 35, 13, 10, 20, 40, 38, 12.
1. Remplacer par le prédécesseur 7
10 19
3 7 12 16 20 38 40
19
3 7 12 16 20 38 40 157 157
V. SUPPRESSION
▪ Exemple: Supprimer du B-arbre d’ordre 5 ci-dessous les valeurs suivantes:
5, 15, 25, 35, 13, 10, 20, 40, 38, 12.
19 19
3 7 12 16 20 38 40 3 7 12 16 38 40
Remplacer par le
16 12 prédécesseur 7
3 7 12 19 38 3 7 16 19
3 7 16 19 3 16 19
Fusionner avec le frère droit
SOURCES DE CE COURS
N. EL-ALLIA , Cours d’Algorithmique et Structures de données dynamiques, Ecole nationale
Supérieure d’Informatique (ESI), 2014.