【发布时间】:2014-06-22 17:51:11
【问题描述】:
我需要在 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: 名称 'arrayToBST' 未定义
我没有看到错误。请帮忙,谢谢!
【问题讨论】:
-
arrayToBST 是一个类的成员。您需要从此类的一个实例中调用它
-
BST 类的对象在哪里?
-
尝试使用:
BST().arrayToBST(seq)
标签: python arrays binary-search-tree