Wie kann ich einen Knoten aus einem BST löschen?
Ich brauche einen Algorithmus zu tun, dass in Dr. Scheme.
Wie kann ich einen Knoten aus einem BST löschen?
Ich brauche einen Algorithmus zu tun, dass in Dr. Scheme.
Angenommen , Ihr binärer Suchbaum straight forward cons Zellen mit Inhalten verwendet nur in den Blättern, und vorausgesetzt , Sie arbeiten an einer Hausaufgabe: Sie verwenden können , set-car!oder set-cdr!um den Inhalt einer cons Zelle zu ändern.
Sie werfen im Grunde die BST Sie jetzt haben, und ein neues sans das Element erstellen.
Sie können dies tun, indem Sie den Baum rekursiv absteigen. Wenn Ihr Einzelteil kleiner als die Wurzel Datum ist, erstellen Sie einen BST, deren Wurzel und Größer-als-Zweig wird kopiert, was Sie jetzt haben, aber deren weniger als Zweig ist das Ergebnis von einem rekursiven Aufruf.
Es ist sehr ähnlich, wie Sie einen Knoten hinzufügen, aber wenn man auf der einen erhalten Sie für die Suche, fusionieren die beiden BSTs darunter und das Ergebnis zurück. Es gibt sicherlich vorhandene Fragen darüber, wie das schon zu tun.