Python 数组到二叉搜索树
我需要创建一个函数,用python从数组创建BST。数组已排序 例如:Python 数组到二叉搜索树,python,arrays,binary-search-tree,Python,Arrays,Binary Search Tree,我需要创建一个函数,用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 := ar
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:未定义名称“arrayToBST”
我看不出有什么错误。请帮忙,谢谢 在递归调用中,您正在调用实例的
arrayToBST
方法。因此,您需要调用self.arrayToBST
而不仅仅是arryToBST
。self
的全部要点是允许您访问实例上的属性
您还应该创建一个实例,并在主节中调用该实例的
arrayToBST
方法。arrayToBST是类的成员。您需要从此类的一个实例调用它,类BST的对象在哪里?请尝试使用:BST().arrayToBST(seq)