Intuitivement, les "arbres équilibrés" devraient être des arbres où les sous-arbres gauche et droit de chaque nœud doivent avoir "approximativement le même" nombre de nœuds.
Bien sûr, lorsque nous parlons d'équilibrage des arbres rouge-noir * (voir définition à la fin), nous voulons en fait dire qu'ils sont équilibrés en hauteur et en ce sens, ils sont équilibrés.
Supposons que nous essayons de formaliser l'intuition ci-dessus comme suit:
Définition: Un arbre binaire est appelé équilibré, avec , si pour chaque nœud, l'inégalité
détient et pour chaque , il y a un nœud pour lequel l'instruction ci-dessus échoue. est le nombre de nœuds dans le sous-arbre gauche de etest le nombre de nœuds sous l'arbre avec comme racine (y compris la racine).| N L | N | N | N
Je pense que ces arbres sont appelés arbres à poids équilibré dans certaines publications sur ce sujet.
On peut montrer que si un arbre binaire à nœuds est équilibré (pour une constante ), alors la hauteur de l'arbre est , maintenant ainsi les belles propriétés de recherche.
La question est donc:
Existe-t-il des tels que chaque arbre rouge-noir suffisamment grand soit équilibré en ?
La définition des arbres rouge-noir que nous utilisons (tirée de Introduction to Algorithms de Cormen et al):
Un arbre de recherche binaire, où chaque nœud est coloré en rouge ou en noir et
- La racine est noire
- Tous les nœuds NULL sont noirs
- Si un nœud est rouge, ses deux enfants sont noirs.
- Pour chaque nœud, tous les chemins allant de ce nœud aux nœuds NULL descendants ont le même nombre de nœuds noirs.
Remarque: nous ne comptons pas les nœuds NULL dans la définition de -balanced ci-dessus. (Même si je crois que cela n'a pas d'importance si nous le faisons).
la source
Réponses:
Allégation : les arbres rouge-noir peuvent être arbitrairement déséquilibrés enμ .
Idée de preuve : remplissez le sous-arbre droit avec autant de nœuds que possible et le gauche avec le moins de nœuds possible pour un nombre donnék de nœuds noirs sur chaque chemin racine-feuille.
Preuve : Définissez une séquenceTk d'arbres rouge-noir pour que Tk ait k nœuds noirs sur chaque chemin de la racine à n'importe quelle feuille (virtuelle). Définissez Tk= B ( Lk, Rk) avec
Clairement, tous lesTk sont des arbres rouge-noir.
Par exemple, ce sont respectivementT1 , T2 et T3 :
[ source ]
[ source ]
[ source ]
Vérifions maintenant l'impression visuelle du côté droit étant énorme par rapport à la gauche. Je ne compterai pas les feuilles virtuelles; ils n'ont pas d'impact sur le résultat.
Le sous-arbre gauche deTk est complet et a toujours la hauteur k - 1 et contient donc 2k- 1 nœuds. Le sous-arbre droit, en revanche, est complet et a une hauteur de2 k - 1 et contient donc22 k- 1 nœuds. Maintenant, lavaleur d'équilibreμ pour la racine est
ce qui prouve qu'il n'y a pasμ > 0 comme demandé.
la source
Non . Considérons un arbre rouge-noir avec la structure spéciale suivante.
Il est simple de vérifier qu'il s'agit d'un arbre rouge-noir valide. Mais le nombre de nœuds dans le sous-arbre droit (22 j+ 1- 1 ) est à peu près le carré du nombre de nœuds dans le sous-arbre gauche ( ).2ré+ 1- 1
la source