Intuitiv sollten "ausgeglichene Bäume" Bäume sein, bei denen die linken und rechten Unterbäume an jedem Knoten "ungefähr die gleiche" Anzahl von Knoten haben müssen.
Wenn wir davon sprechen, dass rot-schwarze Bäume * (siehe Definition am Ende) ausgeglichen sind, meinen wir natürlich, dass sie Höhe haben ausgeglichen sind, und in diesem Sinne sind sie ausgeglichen.
Angenommen, wir versuchen, die obige Intuition wie folgt zu formalisieren:
Definition: Ein binärer Baum heißt balanced, mit 0 ≤ μ ≤ 1 , wenn für jeden KnotenNdie Ungleichung
gilt und für jedes gibt es einen Knoten, für den die obige Anweisung fehlschlägt. | N L | ist die Anzahl der Knoten im linken Unterbaum von N und | N | ist die Anzahl der Knoten unter dem Baum mit N als Wurzel (einschließlich der Wurzel).
Ich glaube, diese werden in einigen Literaturstellen zu diesem Thema als gewichtsausgeglichene Bäume bezeichnet.
Man kann zeigen, dass, wenn ein binärer Baum mit Knoten μ- ausgeglichen ist (für eine Konstante μ > 0 ), die Höhe des Baums O ist ( log n ). , wodurch die netten beibehalten werden.
Die Frage ist also:
Gibt es ein so dass jeder ausreichend große rot-schwarze Baum μ- ausgeglichen ist?
Die Definition von Rot-Schwarz-Bäumen, die wir verwenden (von Einführung in Algorithmen von Cormen et al.):
Ein binärer Suchbaum, in dem jeder Knoten entweder rot oder schwarz gefärbt ist und
- Die Wurzel ist schwarz
- Alle NULL-Knoten sind schwarz
- Wenn ein Knoten rot ist, sind beide untergeordneten Knoten schwarz.
- Für jeden Knoten haben alle Pfade von diesem Knoten zu untergeordneten NULL-Knoten die gleiche Anzahl schwarzer Knoten.
Anmerkung: Wir zählen die NULL-Knoten in der Definition von balanced oben nicht. (Obwohl ich glaube, dass es keine Rolle spielt, wenn wir es tun).