【发布时间】:2017-04-11 18:13:45
【问题描述】:
我有一个数组 = [1,2,3,4,5,6,7],我想将所有元素逐项插入二叉树,所以它看起来像这样:
1
/ \
2 3
/ \ / \
4 5 6 7
我有类节点(代表每个节点):
class Node(self):
def __init__(self):
self.value= 0
self.parent = None
self.left = None
self.right = None
和类Tree(代表树本身):
class Tree():
def __init__(self):
self.root = None
现在我需要创建一个以数组为参数的函数,并按照上面的描述创建二叉树。
我已经做到了:
def insert(array):
size = len(array)
tree = Tree()
insert_node(tree.root, array, 0, size-1)
def insert_node(tree, array, index, size):
node = Node()
if index < size:
node.value = array[index]
insert_node(node.left, array, index*2 +1, size)
insert_node(node.right, array, index*2 +2, size)
tree = node
我认为类似的方法可以工作,但我不知道如何正确设置“父”属性以及如何将节点分配给树。
感谢您的建议
【问题讨论】:
标签: python arrays tree binary-tree