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).
quelle
Antworten:
Anspruch : Rot-Schwarz - Bäume können willkürlich sein un-μ -balanced.
Beweisidee : Fülle den rechten Teilbaum mit so vielen Knoten wie möglich und den linken Teilbaum mit so wenig Knoten wie möglich für eine gegebene Anzahl vonk schwarzen Knoten auf jedem Wurzelblattpfad.
Beweis : Definieren Sie eine FolgeTk von rot-schwarzen Bäumen, so dass Tk auf jedem Pfad von der Wurzel zu einem beliebigen (virtuellen) Blatt k schwarze Knoten hat . Definiere Tk= B ( Lk, Rk) mit
Es ist klar, dass alleTk rot-schwarze Bäume sind.
Zum Beispiel sind diesT1 , T2 bzw. T3 :
[ Quelle ]
[ Quelle ]
[ Quelle ]
Lassen Sie uns nun den visuellen Eindruck überprüfen, dass die rechte Seite im Vergleich zur linken Seite sehr groß ist. Ich werde keine virtuellen Blätter zählen. Sie haben keinen Einfluss auf das Ergebnis.
quelle
Nein . Betrachten wir ein Rot-Schwarz-Baum mit der folgenden speziellen Struktur.
quelle