# define a nodeclassNode:def__init__(self,data):
self.data = data
self.left =None
self.right =NoneclassBinTree:def__init__(self):
self.root =None
self.left =None
self.right =None
self.ls =[]# use the new node to add it's child nodedefadd(self,data):
data = Node(data)ifnot self.root:
self.root = data
self.ls.append(data)else:
temproot = self.ls[0]# the temporary "root" nodeifnot temproot.left:
temproot.left = data
self.ls.append(data)ifnot temproot.right:
temproot.right = data
self.ls.append(data)
self.ls.pop(0)# after add the left and right node, delete the parent nodedefout_levelorder(self):ifnot self.root:print("This tree is none")return
level =[self.root]while(len(level)!=0):# level order
lenth =len(level):while lenth>0:# one levelprint(level[0].data)if level[0].left:
level.append(level[0].left)if level[0].right:
level.append(level[0].right)
level.pop(0)
lenth-=1if __name__ =="__main__":
tree = BinTree()for i inrange(11):
tree.add(i)
tree.out_value_levelorder()