Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 数组到二叉搜索树_Python_Arrays_Binary Search Tree - Fatal编程技术网

Python 数组到二叉搜索树

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

我需要创建一个函数,用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
方法。因此,您需要调用
self.arrayToBST
而不仅仅是
arryToBST
self
的全部要点是允许您访问实例上的属性


您还应该创建一个实例,并在主节中调用该实例的
arrayToBST
方法。

arrayToBST是类的成员。您需要从此类的一个实例调用它,类BST的对象在哪里?请尝试使用:
BST().arrayToBST(seq)