Supposons la définition suivante d'un arbre rouge-noir:
- C'est un arbre de recherche binaire.
- Chaque nœud est coloré en rouge ou en noir. La racine est noire.
- Deux nœuds reliés par une arête ne peuvent pas être rouges en même temps.
- Ici devrait être une bonne définition d'une feuille NIL, comme sur wiki. La feuille NIL est de couleur noire.
- Un chemin d'accès de la racine à une feuille NIL contient le même nombre de nœuds noirs.
Question
Supposons que vous ayez implémenté les opérations insert
et delete
pour l'arborescence rouge-noir. Maintenant, si on vous donne un arbre rouge-noir valide, y a-t-il toujours une séquence d' opérations insert
et delete
qui le construit?
Motivation
Cette question est motivée par cette question et par la discussion de cette question .
Personnellement, je pense que si vous imaginez un arbre rouge-noir valide composé uniquement de nœuds noirs ( ce qui implique que vous imaginez un arbre parfaitement équilibré), il y a une séquence de insert
et les delete
opérations qui le construit. cependant,
- Je ne sais pas comment prouver avec précision
- Je suis également intéressé par le cas plus général
insert
et delete
construit un arbre rouge-noir valide composé uniquement de nœuds noirs . Il utilise insertions / suppressions pour créer un arbre de hauteur . Tout d'abord, nous pouvons créer un arbre parfaitement équilibré rouge-noir de manière très large en utilisant insertions, puis en utilisant des insertions et le même nombre de suppressions le repeindre en un arbre complètement noir. Le truc ici est de remonter fois la couche rouge la plus basse jusqu'à l'arbre jusqu'à la racine. h 2 h + 1 - 1 h * 2 h - 1 h
insert
et les delete
opérations?
insert
et delete
; il peut y avoir plusieurs façons de faire ces opérations. b) Étant donné que les arbres RB sont essentiellement des arbres B d'ordre 4, on peut y trouver de l'inspiration. Les détails peuvent s'avérer délicats, car le mappage de RB vers B (et / ou vers l'arrière) n'est pas unique.