# _*_ coding: utf-8 -*-# version 2.7.13classBTree:# 二叉树节点def__init__(self,value):# 初始化函数self.left=None# 左儿子self.data=value# 节点值self.right=None# 右儿子definsertLeft(self,value):# 向左子树中插入节点self.left=BTree(value)returnself.leftdefinsertRight(self,value):# 向右子树中插入节点self.right=BTree(value)returnself.rightdefshow(self):# 输出节点数据print(self.data)defpreorder(node):# 先序遍历ifnode.data:node.show()ifnode.left:preorder(node.left)ifnode.right:preorder(node.right)definorder(node):# 中序遍历ifnode.data:ifnode.left:inorder(node.left)node.show()ifnode.right:inorder(node.right)defpostorder(node):ifnode.data:ifnode.left:postorder(node.left)ifnode.right:postorder(node.right)node.show()if__name__=="__main__":Root=BTree('Root')A=Root.insertLeft('A')C=A.insertLeft('C')D=A.insertRight('D')F=D.insertLeft('F')G=D.insertRight('G')B=Root.insertRight('B')E=B.insertRight('E')print('*********************************')print('Binary Tree Pre Order')print('*********************************')preorder(Root)print('*********************************')print('Binary Tree In Order')print('*********************************')inorder(Root)print('*********************************')print('Binary Tree Post Order')print('*********************************')postorder(Root)
*********************************
Binary Tree Pre Order
*********************************
Root
A
C
D
F
G
B
E
*********************************
Binary Tree In Order
*********************************
C
A
F
D
G
Root
B
E
*********************************
Binary Tree Post Order
*********************************
C
F
G
D
A
E
B
Root