【二叉树的定义和遍历-python】

"""
1.定义二叉树
"""
class BiTreeNode:
    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
g.rchild = f
c.lchild = b
c.rchild = d
 

"""
2.二叉树的遍历:
前序遍历(根左右):第一个元素是根节点
中序遍历(左根右)
后序遍历(左右根):最后一个元素是根节点
给出前序遍历和中序遍历可以推出后序遍历
给出后序遍历和中序遍历可以推出前序遍历
但是中序遍历是必须的
"""
def pre_order(root):
    """前序遍历 根左右"""
    if root:
        print(root.data,end=',')
        pre_order(root.lchild)
        pre_order(root.rchild)
def in_order(root):
    """中序遍历 左根右"""
    if root:
        pre_order(root.lchild)
        print(root.data,end=',')
        pre_order( root.rchild)
def post_order(root):
    """后序遍历 左右根"""
    if root:
        pre_order(root.lchild)
        pre_order( root.rchild)
        print(root.data,end=',')
pre_order(e)# E,A,C,B,D,G,F,
in_order(e)# A,C,B,D,E,G,F,
post_order(e)# A,C,B,D,E,G,F,
posted @ 2021-09-29 14:26  GokuBlog  阅读(95)  评论(0编辑  收藏  举报