ご注意ください! - >私は直接的なコード例は探していませんが、私の推論の穏やかなマッサージを探しています...DrRacketバイナリ検索ツリーのルートを削除する
私は、バイナリ検索ツリーのルートを削除する関数を書くように求められました: i)ツリーを右に回転 ii)右のサブツリーのルートを削除する(元のbstルート) iii)bstを新しいルート(元のツリーの左側)で再構築し、適切な再配置そのノードの子の...ここで私が持っているものです。
(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))))))
すべての偉大されており、それは子供たちに木を再構築しないことのために期待ルートノードに「昇格」されたノードの名前。誰でも私がそれをどうやって実装すべきか考えてもらえるか?私は、Bstをリストとして定義し、関数rot-rはbstを右に回転させることを言及する必要があります。ありがとうございました。