Versteht nicht, dieses binärer Suchbaum (BST) Beispielalgorithmus

stimmen
2

Im Löschcode von hier .

Ich verstehe nicht den ersten Schnipsel des Löschen Code (wo der Knoten nicht zwei Kinder hat).

Wenn der Knoten gelöscht wird ein Elternteil und ein Kind selbst (dh der Knoten hat ein Kind), wie funktionierts?

Der Code löscht nur den Knoten und nicht die Eltern Zeiger auf das nun verwaiste Kind einstellen.

Bin ich etwas fehlt?

Veröffentlicht am 12/04/2011 um 20:58
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
1

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.


Beantwortet am 12/04/2011 um 21:25
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more