Next: Binäre Suchbäume
Up: Höhenbalancierte Bäume
Previous: (a,b)-Bäume
Definition:
Rot-Schwarz-Bäume sind externe Binärbäume (jeder Knoten
hat 0 oder 2 Kinder) mit roten und schwarzen Kanten, so daß gilt:
- 1.
- alle Blätter hängen an schwarzen Kanten
(durchgezogene Linien)
- 2.
- alle Blätter haben die gleiche ,,Schwarztiefe``
- 3.
- kein Pfad von der Wurzel zu einem Blatt enthält
aufeinanderfolgende rote Kanten (gewellte Linien).
Dabei ist die ,,Schwarztiefe`` eines Knoten die Anzahl der schwarzen Kanten auf dem Pfad von der Wurzel zu diesem Knoten.
Rot-Schwarz-Bäume können zur Implementierung von (2,4)-Bäumen dienen.
Vorteil: Interne Knoten haben Verzweigungsgrad =2.
Operationen auf Rot-Schwarz implementierten (a,b)-Bäume:
- 1.
- IsElement(K,T)
: vgl. (a,b)-Bäume
- 2.
- Insert(K,T)
: Führe
IsElement(K,T)
aus Blatt w. Dort sei
noch nicht das Element v gespeichert. Ersetze w durch interne Knoten w' mit Kindern v,w,
wobei v ein neues Blatt mit Schlüssel K sei. w' behält rote Eingangskante. Falls nun zwei
aufeinanderfolgende rote Kanten an w' vorliegen, Rotation zur Rebalancierung:
- 3.
- Delete(K,T)
: Das Löschen des Blattes v macht es erforderlich, daß der Vater des
Blattes durch den Bruder des Blattes ersetzt wird, damit der Binärbaumstruktur erhalten bleibt.
Der Bruder von v ist natürlich eindeutig bestimmt. Dabei treten zwei Fälle auf:
:
Dadurch ändert sich die Schwarztiefe von w nicht, denn die Eingangskante zu w wird (notwendig) zu schwarz umgefärbt.
Auch kann es hierdurch nicht zu zwei aufeinanderfolgenden roten Kanten kommen.
Hierdurch verkleinert sich die Schwarztiefe von w um 1. Man kann sie nicht wieder erhöhen,
ohne dabei auch die Schwarztiefe anderer Blätter zu vergrößern. Daher muß sie für alle
anderen Blätter des Baumes um 1 verkleinert werden. Man betrachte dazu den Pfad von w zur Wurzel
als unveränderlich und färbt Kanten so um, daß auf allen anderen Pfaden jeweils genau eine Kante
von schwarz zu rot wird. Ferner darf dabei nicht die Situation entstehen, daß zwei aufeinanderfolgende
Kanten rot werden. Ist dies nicht vermeidbar, so muß gemäß obigem Schema rebalanciert werden.
Beweis: Siehe Übungsblatt.
Next: Binäre Suchbäume
Up: Höhenbalancierte Bäume
Previous: (a,b)-Bäume
Abbas-Bardia Kabiri-Jarghouyeh
3/3/1999