BITTE BEACHTEN SIE, DASS DIES IST DAS HEIMARBEIT! -> Ich bin nicht auf der Suche für die direkte Code-Beispiele, sondern einige sanfte Massage meiner Argumentation ...
i) Drehen der Baum auf der rechten Seite ii) Entfernen der Wurzel des rechten Unterbaum (die die ursprüngliche bst Wurzel war) iii) Wiederaufbau: Ich habe eine Funktion zu schreiben, die die Wurzel eines binären Suchbaum entfernt, indem Sie drei Dinge gefragt worden, die bst mit der neuen Wurzel und den entsprechenden Umlagerungen der Kinder dieses Knotens (die links von dem ursprünglichen Baum war) ... Hier ist, was ich habe:
(define (rm-root my-bst)
(list (key (rot-r my-bst))
(left (rot-r my-bst))
(append (right (right (rot-r my-bst)))
(left (right (rot-r my-bst))))))
Die alle groß, für erwarten, dass sie den Baum mit den Kindern des Knotens nicht wieder aufbauen wird, die „befördert“ auf den Wurzelknoten wurde. Kann mir jemand helfen denken darüber, wie ich, dass über die Umsetzung gehen sollte? Ich sollte erwähnen, dass wir BSTs als Listen und dass die Funktion rot-r dreht die bst nach rechts definiert haben. Vielen Dank.













