- 二叉树前序遍历:遍历规则顺序为【根左右】
- 二叉树的中序遍历:遍历顺序规则为【左根友】
- 二叉树的后序遍历:遍历规则为【左右根】
- 二叉树的层次遍历
from collections import deque
class BiTreeNode: #创建B树节点
def __init__(self, data):
self.data = data
self.lchild = None
self.rchild = None
a = BiTreeNode('A')
b = BiTreeNode('B')
c = BiTreeNode('C')
d = BiTreeNode('D')
e = BiTreeNode('E')
f = BiTreeNode('F')
g = BiTreeNode('G')
e.lchild = a
e.rchild = g
a.rchild = c
c.lchild = b
c.rchild = d
g.rchild = f
root = e
def pre_order(root): #前序遍历
if root:
print(root.data, end='')
pre_order(root.lchild)
pre_order(root.rchild)
def in_order(root): #中序遍历
if root:
in_order(root.lchild)
print(root.data, end='')
in_order(root.rchild)
def post_order(root): #后序遍历
if root:
post_order(root.lchild)
post_order(root.rchild)
print(root.data, end='')
def level_order(root): #层次遍历
queue = deque()
queue.append(root)
while len(queue) > 0:
node = queue.popleft()
print(node.data,end='')
if node.lchild:
queue.append(node.lchild)
if node.rchild:
queue.append(node.rchild)
pre_order(root)
print("")
#结果为:EACBDGF
in_order(root)
print("")
结果为:ABCDEGF
post_order(root)
print("")
结果为:BDCAFGE
level_order(root)
结果为:EAGCFBD