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 insertet deletepour 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 insertet deletequi 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 insertet les deleteopé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
insertet deleteconstruit 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
                insertet les deleteopérations?
                insertet 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.