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).