#coding=utf-8
#二叉树的遍历
#定义节点类
class TreeNode:
def __init__(self,val,left=None,right=None):
self.val = val
self.left = left
self.right = right
#定义二叉树类
class BinaryTree:
def __init__(self,root=None):
self.root = root
#先序排列
def pre_order(reslist,node):
if node != None:
reslist.append(node)
pre_order(reslist,node.left)
pre_order(reslist,node.right)
return reslist
#中序
def mid_order(reslist,node):
if node != None:
mid_order(reslist,node.left)
reslist.append(node)
mid_order(reslist,node.right)
return reslist
#后序
def post_order(reslist,node):
if node != None:
mid_order(reslist,node.left)
mid_order(reslist,node.right)
reslist.append(node)
return reslist
if __name__=="__main__":
node = TreeNode(50)
node.left =TreeNode(20,left=TreeNode(15),right=TreeNode(30))
node.right = TreeNode(60,right=TreeNode(70))
binarytree = BinaryTree(node)
reslist=[]
#result= pre_order(reslist,binarytree.root)
result = mid_order(reslist,binarytree.root)
print result
for i in result:
print i.val
【python算法】二叉树的先序中序后序遍历
猜你喜欢
转载自blog.csdn.net/qq_30758629/article/details/80978705
今日推荐
周排行