python – 插入二进制搜索树

python – 插入二进制搜索树,第1张

概述所以我必须将一个节点插入二叉搜索树.在我的入门课程中,二叉搜索树表示为链接列表,例如, [4,[5,[0,[],[]],[2,[],[]]],[1,[],[]]]对于下图中的二叉树: . (这不是二叉搜索树,只是我有一张图片的二叉树). 因此,要将一个节点插入树中,我编写了以下递归代码: def tree_node(key): return [key, [],[]]def insert 所以我必须将一个节点插入二叉搜索树.在我的入门课程中,二叉搜索树表示为链接列表,例如,
[4,[5,[0,[],[]],[2,[]]],[1,[]]]对于下图中的二叉树:

.

(这不是二叉搜索树,只是我有一张图片的二叉树).

因此,要将一个节点插入树中,我编写了以下递归代码:

def tree_node(key):    return [key,[]]def insert(bst,key):    if bst == []:        return tree_node(key)    if key < bst[0]:        return insert(bst[1],key)    else:        return insert(bst[2],key)    return bst

这只返回节点,而不是返回节点的新树

例如:

>>> insert([2,[3,6)[6,[]]

应该是什么时候:

>>> insert([2,6)[2,[6,[]]]]

谢谢!

解决方法 您需要更改基本案例.您需要修改传入的空列表,而不是返回新列表.切片分配可能最简单:

def insert(bst,key):    if bst == []:        bst[:] = tree_node(key)    elif key < bst[0]:        insert(bst[1],key)    else:        insert(bst[2],key)

由于此函数修改了树,我不会返回它.如果你想要那样,只需在最后重新添加返回bst(但不是在递归步骤中,我们要忽略那些返回值).

总结

以上是内存溢出为你收集整理的python – 插入二进制搜索树全部内容,希望文章能够帮你解决python – 插入二进制搜索树所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1197521.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存