Wie kann ich von einem binären Suchbaum in Lisp löschen

stimmen
1

Wie kann ich einen Knoten aus einem BST löschen?

Ich brauche einen Algorithmus zu tun, dass in Dr. Scheme.

Veröffentlicht am 07/12/2010 um 09:09
quelle vom benutzer
In anderen Sprachen...                            


2 antworten

stimmen
2

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.

Beantwortet am 07/12/2010 um 14:51
quelle vom benutzer

stimmen
3

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.

Beantwortet am 08/12/2010 um 03:09
quelle vom benutzer

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