gpt4 book ai didi

python - 数组到二叉搜索树

转载 作者:太空宇宙 更新时间:2023-11-04 06:01:58 24 4
gpt4 key购买 nike

我需要在 python 中创建一个从数组创建 BST 的函数。数组已经排序。

例子是:

function array_to_binary_search_tree(array, start, end)
if start > end
Return an empty value
mid := int((start + end) / 2)
tree := BinaryTree()
tree.node := array[mid]
tree.left := array_to_binary_search_tree(array, start, mid - 1)
tree.right := array_to_binary_search_tree(array, mid + 1, end)
Return 'tree'

我有这个:

class BST:

def __init__(self,tree,info):
self.right = None
self.left = None
self.info = info

def arrayToBST(seq):
if (seq == []):
return None
mid = ((len(seq)) // 2)
tree = BST(seq[mid])
tree.left = arrayToBST(seq[0:mid])
tree.right = arrayToBST(seq[mid+1:])

return tree

if __name__ == "__main__":
seq = [1,2,3,4,5,6,7,8,9]
arrayToBST(seq)

结果是:

NameError: name 'arrayToBST' is not defined

我没有看到错误。请帮忙,谢谢!

最佳答案

在递归调用中,您正在调用实例的 arrayToBST 方法。因此,您需要调用 self.arrayToBST 而不仅仅是 arryToBSTself 的全部意义在于让您访问实例上的属性。

您还应该创建一个实例并在您的主要部分调用该实例的 arrayToBST 方法。

关于python - 数组到二叉搜索树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24354013/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com