2014-05-09 41 views
0

该算法在Wiki article中的实现有一个缺点。 如果树只包含一个根,则不会发生任何事情。该树不是 已修改。如何解决这个问题?在C++中,可以将根指针设置为null,但是在python中该做什么?二进制搜索树中的删除,python实现

+1

如果树只有根,那么根就是叶,所以你删除它。如果你有一个引用根的对象,你可以将它设置为空。 – Simon

+0

二叉搜索树将始终只包含一个根。你的意思是如果BST只剩下一个节点(又名根)?你有没有试过测试这个代码,看看它是否离开了根节点? –

+0

@Simon你如何删除它? – ashim

回答

2

这是a previous question的延续,操作系统正在寻找将值替换为无,但是将所有实例分配给它们的名称 - 这在Python中是不可能的。

答案是在这种情况下,由于Python的设计方式,无法删除值 - 您必须实现某种类型的对象管理器,将其存储在容器中并通过它访问它,或者改变你的设计不要依赖变异。

另一个值得提问的问题 - 这是一个可能发生的情况吗?将此定义为限制根节点不能被销毁的限制是可能的(也是可取的)。我想不出你想要那种功能的情况。