#结点类
class Node():
def __init__(self, item):
self.item = item
self.left = None
self.right = None
#构建树
class Tree():
def __init__(self):
self.root = None
#添加节点
def add(self, item):
node = Node(item)
#根
if self.root is None:
self.root = node
#用序列模拟对列,将根先加入对列
else:
q = [self.root]
while q:
#弹出队首
point = q.pop(0)
if point.left is None:
point.left = node
return
if point.right is None:
point.right = node
return
else:
q.append(point.left)
q.append(point.right)
#层序遍历
def travel(self, root):
if root is None:
return []
l = []
q = []
q.append(root)
while q:
point = q.pop(0)
l.append(point.item)
if point.left:
q.append(point.left)
if point.right:
q.append(point.right)
return l
#测试
t = Tree()
for i in [1,2,3,4,5,6,7,8,9]:
t.add(i)
print(t.travel(t.root))
#结果
[1,2,3,4,5,6,7,8,9]
构建二叉树 python
最新推荐文章于 2023-03-25 20:40:45 发布