1

如何从 BST 中删除节点?

我需要一个算法来在 Dr. Scheme 中做到这一点。

4

2 回答 2

3

您基本上折腾了您现在拥有的 BST,并创建了一个没有元素的新 BST。

您可以通过递归下降树来做到这一点。如果您的项目小于根基准,则创建一个 BST,其根和大于分支是从您现在拥有的内容中复制的,但其小于分支是递归调用的结果。

它与添加节点的方式非常相似,但是当您到达要搜索的节点时,将其下方的两个 BST 合并并返回结果。关于如何做到这一点,肯定存在一些问题。

于 2010-12-08T02:09:12.427 回答
2

假设您的二叉搜索树使用直接的 cons 单元格,内容仅在叶子处,并假设您正在处理家庭作业:您可以使用set-car!set-cdr!更改 cons 单元格的内容。

于 2010-12-07T13:51:59.157 回答