Vous êtes sur la page 1sur 5

Correspondance entre les arbres (2,4) et les arbres

Arbres Rouges-Noirs
rouges-noirs
On peut voir un arbre rouge-noir comme étant la représentation d’un
arbre (2,4) par un arbre binaire de recherche dont les noeuds sont
colorés rouge ou noir
En comparaison avec les arbres (2,4), les arbres rouges-noirs ont
La même complexité logarithmique
Plus simple à implémenter car on a une seule sorte de noeud

4 3 5 2 6 7

5 3 6
4
3 ou 5 2 7

IFT2015, A2009, Sylvie Hamel


Université de Montréal
Arbres Rouges-Noirs 1

Arbres rouges-noirs Hauteur d’un arbre rouge-noir


Un arbre rouge-noir peut aussi être défini comme étant un arbre La hauteur d’un arbre rouge-noir gardant en mémoire n éléments est
binaire de recherche qui satisfait les propriétés suivantes: en O(log n)
Propriété de racine: La racine est noir Preuve: La hauteur d’un arbre rouge-noir est au plus le double de la hauteur
Propriété externe: Les noeuds externes sont noirs de l’arbre (2,4) lui correspondant, qui est de O(log n)

Propriété interne: Les enfants d’un noeud rouge sont noirs


Propriété de profondeur: Tous les noeuds externes ont la même profondeur L’algorithme de recherche dans un arbre rouge-noir est exactement le
noir, qui est définie comme!étant le nombre d’ancêtre interne noir même algorithme que pour la recherche dans un arbre binaire de
recherche
9

4 15
On a donc que la complexité en temps de la recherche dans un arbre
2 6 12 21 rouge-noir est en O(log n)
7

IFT2015, A2009, Sylvie Hamel IFT2015, A2009, Sylvie Hamel


Université de Montréal
Arbres Rouges-Noirs 2 Université de Montréal
Arbres Rouges-Noirs 3
Insertion dans un arbre rouge-noir Remédier à un double rouge
Pour insérer un élément (k,v) dans un arbre rouge-noir, on exécute Considérons un double rouge: v, le parent rouge, z, le fils rouge
l’algorithme d’insertion d’un arbre binaire de recherche et on colore et considérons w, le frère de v.
rouge le nouveau noeud z, sauf si z est la racine
Cas 1: w est noir Cas 2: w est rouge
Exemple: Insérer un élément de clé 4
on peut voir le double rouge comme on peut voir le double rouge comme
Les propriétés de racine et de profondeur, de même que la propriété un remplacement incorrect d’un un débordement dans un arbre (2,4)
externe sont préservées 4-noeud
Si le parent n de z est noir, on préserve aussi la propriété interne et on a Restructuration: On exécute le bon Recoloration: On performe
terminé l’algorithme d’insertion remplacement du 4-noeud l’équivalent d’un fractionnement

Sinon, on a un double rouge et on doit modifier l’arbre pour rétablir la 4 4


w v w v
propriété interne. 2 7 2 7
z z
6 6
6
6 n
n 3 8
3 8 4 6 7
z 2 4 6 7
z 4
.. 2 ..

IFT2015, A2009, Sylvie Hamel IFT2015, A2009, Sylvie Hamel


Université de Montréal
Arbres Rouges-Noirs 4 Université de Montréal
Arbres Rouges-Noirs 5

Cas 1: Restructuration Cas 1: Restructuration (suite)


Considérons un double rouge: v, le parent rouge, z, le fils rouge
Il y a 4 configurations possibles demandant une restructuration,
et considérer w, le frère de v. Lorsque w est noir, on exécute une
dépendant de l’emplacement des deux noeuds rouges formant le
restructuration
double rouge
Cela revient à exécuter le remplacement correct du 4-noeud x
2
x v 6 x 6 2 x
v v v
La propriété interne est restorée et les autres propriétés sont 6 2
z
4 4
z 4 2 z
préservées 4 6 z

z
4
w v 6
v
2 7
z 4 7
w b
6
2 4
a c
2 6

4 6 7

.. 2 ..

IFT2015, A2009, Sylvie Hamel IFT2015, A2009, Sylvie Hamel


Université de Montréal
Arbres Rouges-Noirs 6 Université de Montréal
Arbres Rouges-Noirs 7
Cas 2: Recoloration
Complexité en temps d’une insertion
Considérons un double rouge: v, le parent rouge, z, le fils rouge La hauteur d’un arbre rouge-noir gardant
et considéroms w, le frère de v. Lorsque w est rouge, on exécute une Algorithme insérer(k, vo)
en mémoire n éléments est en O(log n)
recoloration
1. On exécute chercher(k) pour L’étape 1 prend un temps O(log n), étant
On recolore le parent v et son frère w en noir et le grand-parent (le trouver le noeud d’insertion z donné qu’on doit visiter O(log n) noeuds
parent de v) devient rouge, sauf si c’est la racine lors de la recherche
2. On insère le nouvel élément
L’étape 2 prend un temps O(1)
Cela correspond à exécuter le fractionnement d’un 5-noeud (k, vo) dans le noeud z et on
colore z rouge
Il est possible que le double rouge se propage chez le grand-parent L’étape 3 prend un temps O(log n), étant
3. Tant que doubleRouge(z) donné qu’on exécute au plus
4 w
4
v si estNoir(frère(parent(z))) O(log n) recolaration, chacune
w v 2 7
2
z
7 z z ! restructure(z) prenant un temps O(1)
6
6
sinon Au plus une restructuration prenant
z ! recolore(z) un temps O(1)
… 4 …
2 4 6 7 L’insertion d’un élément dans un arbre
2 6 7
rouge-noir prend donc un temps O(log n)

IFT2015, A2009, Sylvie Hamel IFT2015, A2009, Sylvie Hamel


Université de Montréal
Arbres Rouges-Noirs 8 Université de Montréal
Arbres Rouges-Noirs 9

Suppression dans un arbre rouge-noir Supprimer dans un arbre binaire de recherche (rappel)
Pour supprimer un élément de clé k dans un arbre rouge-noir, on Pour enlever un élément de clé k dans un arbre binaire de recherche, on
exécute l’algorithme de suppression d’un arbre binaire de recherche commence par exécuter l’algorithme chercher(k).
< 6
Exemple 1: Enlever(4)
22 9
>
51 44 w 8
Si k est dans l’arbre l’algorithme
chercher(k) se terminera dans un 5
noeud interne w

Si l’un des enfant de w est une


feuille, on enlève cette feuille et w 6

2 9
Sinon...
1 5 8

IFT2015, A2009, Sylvie Hamel IFT2015, A2009, Sylvie Hamel


Université de Montréal
Arbres Rouges-Noirs 10 Université de Montréal
Arbres Rouges-Noirs 11
Supprimer dans un arbre binaire de recherche (suite) Suppression dans un arbre rouge-noir
Si k est dans l’arbre, l’algorithme chercher(k) se terminera dans un noeud interne
w. Si les fils de w sont tous les deux des noeuds internes alors Pour supprimer un élément de clé k d’un un arbre rouge-noir, on
exécute l’algorithme de suppression d’un arbre binaire de recherche
Exemple 2: Enlever(3) 1 >
w Soit v, le noeud interne et w, le noeud externe enlever lors de la
On trouve le noeud interne y qui suit w 33

lors d’un parcours symétrique de l’arbre et 2 88 suppression. Soit r, le frère de w.


son fils gauche x 6 9 Si soit v ou r était rouge, on colore r noir et on a terminé
y 5
On enlève l’entrée dans w et on la Sinon (v et r était noir), enlever v va causer une violation de la propriété de
x
remplace par l’entrée dans y profondeur et demander une restructuration de l’arbre. On appelera cette
situation double noir au noeud r.
On enlève les noeuds y et x
1
w 6 6
5
v r
2 8 3 8 3
6 9
r w
4 4

IFT2015, A2009, Sylvie Hamel IFT2015, A2009, Sylvie Hamel


Université de Montréal
Arbres Rouges-Noirs 12 Université de Montréal
Arbres Rouges-Noirs 13

Remédier à un double noir Remédier à un double noir


Soit r le noeud double noir. Soit y, le frère de r. Soit r le noeud double noir. Soit y, le frère de r.

Cas 1: Si y est noir et a un fils z rouge, on performe une restructuration qui Cas 2: Si y est noir et les deux fils de y sont noirs, on performe une recoloration
équivaut à un transfert dans l’arbre (2,4) correspondant. À la suite de cette qui équivaut à une fusion dans l’arbre (2,4) correspondant. La recolaration peut
restructuration, toutes les propriétés des arbres rouges-noirs sont rétablies. causer un problème de double noir chez le parent de r.

x x 10 30 …
10
x
… 30 … 30 30

10 20
y
20 40
r ou
y
10 40
r 30
20 y 20 40 r
40
z 10 20 z
40

20 10
… 20 …
10 … x
10 30 30
10 30
40
20 30
y 40
r
20
40 40

IFT2015, A2009, Sylvie Hamel IFT2015, A2009, Sylvie Hamel


Université de Montréal
Arbres Rouges-Noirs 14 Université de Montréal
Arbres Rouges-Noirs 15
Remédier à un double noir
Soit r le noeud double noir. Soit y, le frère de r.
Insertion: Remédier à un double rouge
Opérations arbres rouge-noir Opérations arbres (2,4) Résultats
Cas 3: y est rouge, on performe un ajustement qui équivaut à choisir une
Changement de Le double rouge est
représentation différente d’un 3-noeud dans l’arbre (2,4) correspondant. Restructuration représentation d’un 4-noeud enlevé
L’ajustement va nous ramener soit dans le cas 1, soit dans le cas 2
Le double rouge est
Recoloration Fractionnement enlevé ou il se propage
vers le haut

20 30
x
Text
30
… 10 … y r Suppression: Remédier à un double noir
20 40
... ... Opérations arbres rouge-noir Opérations arbres (2,4) Résultats
40 z 10 Restructuration Transfert Le double noir est enlevé
Le double noir est enlevé
Recoloration Fusion ou il se propage vers le
y haut
20 30
20 Suivi d’une
… 10 …
z x Ajustement
Changement de
restructuration ou d’une
30 représentation d’un 3-noeud
... ... 10 recoloration
40
40
r
IFT2015, A2009, Sylvie Hamel IFT2015, A2009, Sylvie Hamel
Université de Montréal
Arbres Rouges-Noirs 16 Université de Montréal
Arbres Rouges-Noirs 17

Vous aimerez peut-être aussi