Preview only show first 10 pages with watermark. For full document please download

Bei Der Untersuchung Des Löschvorgangs Aus Einem Rot

   EMBED


Share

Transcript

Bei der Untersuchung des Löschvorgangs aus einem Rot-Schwarz-Baum betrachten wir zunächst den Löschvorgang selbst, d.h. das Entfernen eines Blattes. Das betroffene Knotenmuster ist mit den Bezeichnungen E=zu löschender Knoten, V=Vaterknoten, B=Bruderknoten und K=Kindknoten. Einfach zu behandeln ist ein roter zu löschender Knoten. Der Bruderknoten kann fehlen, ist aber, wenn vorhanden, ebenfalls Rot. Wird E nun gelöscht, so ändert sich nichts an der Schwarztiefe, und der Löschvorgang ist abgeschlossen. Ebenfalls einfach zu behandeln ist ein schwarzer zu löschender Knoten mit einem roten Kind. K wird schwarz eingefärbt und nimmt die Stelle von E ein, womit sich an der Schwarztiefe dieses Zweiges nichts verändert hat (der rechte Baumteil ist per Voraussetzung korrekt). Besitzt E kein Kind, hängt das weitere Vorgehen von B und V ab. Betrachten wir zunächst den konfliktfrei lösbare Falle, dass B ein rotes Kind besitzt Nach Entfernen von E übernimmt K die Rolle von V und V wird linkes Kind von K, das dabei schwarz gefärbt wird. Die Schwarztiefe bleibt so erhalten. Ohne Umfärbung von K lässt sich so auch der Fall eines roten V lösen. Auch noch unkritisch ist der Fall, dass B keine Kinder besitzt und V rot ist. Nach Entfernen von E tauschen V und B die Farbe, was insgesamt die Schwarztiefe konstant lässt. Besitzt B zwei rote Kinder, so kann V an die Position E rücken und das linke Kind die Rolle von V übernehmen: Auch hier hat sich offenbar nichts geändert. Der letzte noch zu untersuchende problemlose Basisfall betrifft die gleiche Ausgangslage, jedoch nun mit zwei roten Kindern von B Nach dem folgende Tausch ist zunächst wieder alles in Ordnung Der einzige wirklich kritische Fall sind schwarze E, V und B sowie fehlende Kinder: Nach Entfernen von E bleibt nur, die Farbe von B zu wechseln: Der Teilbaum ist zwar nun wieder korrekt, jedoch hat die Schwarztiefe insgesamt abgenommen, so dass oberhalb von V weitergemacht werden muss. Untersuchen wir nun hier die auftretenden Möglichkeiten allgemein. Falls V, B, und beide Kinder von B schwarz sind, genügt es, B rot einzufärben. Damit ist auch der rechte Teilbaum nun in der Schwarztiefe reduziert, und die Untersuchung kann rekursiv mit V fortgesetzt werden. Ist V rot (und der Rest identisch), genügt ein Farbwechsel zwischen V und B Im rechten Teilbaum bleibt dabei die Farbtiefe erhalten, im linken steigt sie wieder um die zuvor verlorene Einheit, so dass der Baum ausgeglichen ist. Besitzt B zwei rote Kinder so kann man durch Umfärben von B und K den Baum in diesen Fall überführen: Damit hat sich zwar noch nichts geändert, aber wir können nun durch Rotieren einen Zustand erreichen, den wir schon behandelt haben: An der Rolle von E ändert sich nichts, aber er hat nun einen roten Vater und einen schwarzen Bruder, wovon wir oben bereits einen Fall erfolgreich behandelt haben. Auch bei verschiedenfarbigen Kindern von B ist eine Rotation möglich: Die Rolle von V ist dabei nebensächlich, das rote Kind wird schwarz gefärbt Man überzeugt sich leicht, dass der Baum hierdurch sogar repariert ist. Bleibt als ausstehender Fall noch der folgende: Zyklisch tauschen wir Auch hierdurch wird der Baum repariert.