1.Exp4Class创建结点类
# 创建结点类
class Node():
def __init__(self, data, l=None, r=None):
self.data = data
self.l = l
self.r = r
# 添加左子树
def addLeftTree(self, node):
self.l = node
# 添加右子树
def addRightTree(self, node):
self.r = node
# 先序遍历:根左右
def PreTravel(self, DataList): # DataList存储遍历的数据
DataList.append(self.data)
if self.l is not None: # 子树不为空则递归该方法
self.l.PreTravel(DataList)
if self.r is not None:
self.r.PreTravel(DataList)
return DataList
# 中序遍历:左根右
def MidTravel(self, DataList):
if self.l is not None:
self.l.MidTravel(DataList)
DataList.append(self.data)
if self.r is not None:
self.r.MidTravel(DataList)
return DataList
# 后序遍历:左右根
def BackTravel(self, DataList):
if self.l is not None:
self.l.BackTravel(DataList)
if self.r is not None:
self.r.BackTravel(DataList)
DataList.append(self.data)
return DataList
2.Exp4Run:
from Exp4Class import Node
# 创建子树
a = Node(1)
b = Node(2)
c = Node(3)
d = Node(4)
e = Node(5)
f = Node(6)
g = Node(7)
a.addLeftTree(b)
a.addRightTree(f)
b.addRightTree(c)
c.addLeftTree(d)
c.addRightTree(e)
f.addLeftTree(g)
print("先序遍历:{}".format(a.PreTravel([])))
print("中序遍历:{}".format(a.MidTravel([])))
print("后序遍历:{}".format(a.BackTravel([])))



