2010-12-07 130 views
1

如何从BST中删除节点?如何从Lisp中的二叉搜索树中删除

我需要一个算法来做博士计划。

+0

这完全是一个执行问题。你如何代表BST? – Svante 2010-12-07 13:15:12

+0

可能想用方案和dr-scheme和作业标记此 – 2010-12-07 21:54:21

回答

3

你基本上折腾了你现在的BST,并创建一个新的无效的元素。

您可以通过递归降序树来完成此操作。如果您的项目小于根目录数据,请创建一个BST,其根目录和大于分支从您现在拥有的内容中复制而来,但其小于分支是递归调用的结果。

这与添加节点非常相似,但是当您找到正在搜索的节点时,请合并它下面的两个BST并返回结果。目前确实存在关于如何做到这一点的问题。

2

假设你的二叉搜索树使用直线前进利弊细胞,仅在叶的内容,并假设您正在处理一个家庭作业: 您可以使用set-car!set-cdr!改变利弊单元格的内容。