DrRacket Löschen Wurzel ein binärer Suchbaum

stimmen
1

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.

Veröffentlicht am 12/11/2011 um 01:07
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
1

Nun, ich bin nicht sicher, ob diese 12 Tage nützlich sein wird, nachdem die Frage gestellt wurde, aber hier geht.

Um es klar, ich vermute, dass die Datenstruktur der Form (Liste Taste links rechts), wo links und rechts sind auch Bäume (oder leer, aber das ist irrelevant für diesen). Ist dies nicht der Fall ist, Klärung das wäre nötig.

Ein Problem in Ihrem Code ist, dass Sie nicht wollen, direkt anhängen die beiden Listen Sie haben gemeinsam für das Recht. Sie mögen eine Liste mit dem Schlüssel von einem von denen machen, und dann links und rechts. Wenn ich das richtig lese, sollte die linke Funktion einen Baum zurückkehren und sollten daher gut funktionieren.

Ich würde die Umsetzung des rot-r überprüfen, ob ich Ihnen war, dass die Haupt Möglichkeit für Dinge schief gehen zu sein scheint.

Beantwortet am 23/11/2011 um 07:33
quelle vom benutzer

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