aboutsummaryrefslogtreecommitdiff
path: root/semestre 3/structures des données/9- Arbre rouge-noir.md
diff options
context:
space:
mode:
authorAnhgelus Morhtuuzh <william@herges.fr>2026-01-20 13:55:21 +0100
committerAnhgelus Morhtuuzh <william@herges.fr>2026-01-20 13:55:21 +0100
commit42e9569176360b5e1881d317c74ce8522a2af6d1 (patch)
tree9df17cba32ac37cf34f486f3fbf335a19f8a14ca /semestre 3/structures des données/9- Arbre rouge-noir.md
parentecf05510045b2ac78b479ae746a43078e22cee4f (diff)
Derniers cours du S3
Diffstat (limited to 'semestre 3/structures des données/9- Arbre rouge-noir.md')
-rw-r--r--semestre 3/structures des données/9- Arbre rouge-noir.md38
1 files changed, 37 insertions, 1 deletions
diff --git a/semestre 3/structures des données/9- Arbre rouge-noir.md b/semestre 3/structures des données/9- Arbre rouge-noir.md
index 658c4e1..58629f8 100644
--- a/semestre 3/structures des données/9- Arbre rouge-noir.md
+++ b/semestre 3/structures des données/9- Arbre rouge-noir.md
@@ -15,9 +15,45 @@ Arbre rouge-noir
|> AVL demandant moins de rotations
|> racine est noire
|> fils d'un rouge est noir
-**voir le diapo pour les autres specs**
+|> si un nœud a moins de deux fils, on considère que les fictifs sont noirs
+|> le nombre de nœuds noirs sur un chemin de la racine vers une feuille est toujours le même
+
+Hauteur est toujours en $O(\log n)$ (on l'appelle *hauteur noire*)
+-> les preuves sont sur le diapo
Problème de ces arbres
|> beaucoup de cas à gérer
+
+```mermaid
+flowchart TB
+ GP[Grand-père] --- P[Père]
+ GP --- O[Oncle]
+ P --- X
+ P --- Frère
+```
+
+**Insertion** -> le nœud est rouge
+1. Si père est noir, on termine
+2. Si c'est la racine, on le met en noir et on termine
+3. Si père est rouge *et* oncle est rouge, alors
+ - père devient noir
+ - oncle devient noir
+ - grand-père devient rouge
+ - on fait un appel récursif sur grand-père
+4. Dans tous les autres cas
+ 1. Si père est un fils gauche
+ - seulement si c'est un fils droit, rotation gauche (X et père inversent leurs places)
+ - père devient noir
+ - grand-père devient noir
+ - rotation droite de grand-père
+ 2. Si père est un fils droit
+ - seulement si c'est un fils gauche, rotation droite (X et père inversent leurs places)
+ - père devient noir
+ - grand-père devient rouge
+ - rotation gauche de grand-père
+
+Est en $O(\log n)$
+
+**Rattraper la suppression**
## Skip lists
-> ici, on s'occupe des la concurrence \ No newline at end of file