Ich könnte falsch sein, aber der Code auf der angegebenen Seite scheint OK. Ich habe es noch nicht getestet, aber.
Das ist wahr, weil die Löschfunktion ein Argument , die vom Typ BSTNode ist ** Knoten. Dies ist kein Zeiger auf den Knoten. Dies ist ein Zeiger auf den Knoten - Zeiger des Elternteil auf den Knoten selbst . Dies könnte ein wenig nachlässig, aber ich muss zugeben , nachdem er erkannt hatte , was der Code tut, es ist eine elegante in seiner Art Lösung. Also , wenn Sie (* Knoten) neu zu schreiben, Sie sind Umschreiben nicht den Knoten selbst , sondern werden Sie die die Knotens Umschreiben Mutter Zeiger auf den Knoten . Effektiv wird der Code zu tun , was man in einer etwas perversen Art und Weise vorgeschlagen: D. Hoffe , dass Sie verstehen , was ich meine , und ich hoffe , dass ich es richtig verstanden habe.
Ich würde auch empfehlen , dass Sie weiter über rot-schwarzen Bäumen lesen, da dieser Artikel Einblick gibt nur die Erstellung , den Baum, aber die beschriebene Struktur hat keine asymptotische Schranken für seine Höhe. Wenn zB Sie sortierten Werte in dieser Struktur schieben, wird es eine verbundene Liste anstelle eines ausgeglichenen Baum sein.