class Node: #定义树节点 def __init__(self,root): self.root=root self.left=None self.right=None class Tree(object): lt = [] # 依次存放左右孩子未满的节点 def __init__(self): self.root = None def add(self, number): node = Node(number) # 将输入的数字节点化,使其具有左右孩子的属性 if self.root == None: self.root = node Tree.lt.append(self.root) else: while True: point = Tree.lt[0] # 依次对左右孩子未满的节点分配孩子 if point.left ==None: point.left = node Tree.lt.append(point.left) # 该节点后面作为父节点也是未满的,也要加入到列表中。 return elif point.right ==None: point.right = node Tree.lt.append(point.right) # 与左孩子同理 Tree.lt.pop(0) # 表示该节点已拥有左右孩子,从未满列表中去除 return if __name__==‘__main__‘: t = Tree() # 二叉树类的实例化 L = [1, 2, 3, 4, 5, 6] for i in L: t.add(i) print(‘节点添加成功‘)
原文:https://www.cnblogs.com/havelucky/p/12072856.html