class BTree:
def __init__(self,data=None,left=None,right=None):
self.data=data
self.left=left
self.right=right
def insertLeft(self,data):
self.left=BTree(data)
return self.left
def insertRight(self,data):
self.rigth=BTree(data)
return self.right
def show(self):
print self.data
def preorder(node): #先序遍历
if node.data:
node.show()
if node.left:
preorder(node.left)
if node.right:
preorder(node.right)
def inorder(node): #中序遍历
if node.data:
if node.left:
inorder(node.left)
node.show()
if node.right:
inorder(node.right)
def postorder(node): #后序遍历
if node.data:
if node.left:
postorder(node.left)
if node.right:
postorder(node.right)
node.show()
if __name__=='__main__':
Root=BTree('D',BTree('B',BTree('A'),BTree('C')),BTree('E',right=BTree('G',BTree('F'))))
print'前序'
preorder(Root)
print'中序'
inorder(Root)
print '后序'
postorder(Root)