代码如下:
#!/usr/bin/python# -*- coding: utf-8 -*-
class treenode(object): def __init__(self,data=0,left=0,right=0): self.data = data self.left = left self.right = right
class btree(object): def __init__(self,root=0): self.root = root
def is_empty(self): if self.root is 0: return true else: return false
def preorder(self,treenode): if treenode is 0: return print treenode.data self.preorder(treenode.left) self.preorder(treenode.right)
def inorder(self,treenode): if treenode is 0: return self.inorder(treenode.left) print treenode.data self.inorder(treenode.right)
def postorder(self,treenode): if treenode is 0: return self.postorder(treenode.left) self.postorder(treenode.right) print treenode.data
n1 = treenode(data=1)n2 = treenode(2,n1,0)n3 = treenode(3)n4 = treenode(4)n5 = treenode(5,n3,n4)n6 = treenode(6,n2,n5)n7 = treenode(7,n6,0)n8 = treenode(8)root = treenode(‘root’,n7,n8)
bt = btree(root)print ‘preorder……’print bt.preorder(bt.root)print ‘inorder……’print bt.inorder(bt.root)print ‘postorder…..’print bt.postorder(bt.root)
结果:
preorder……root76215348
inorder……1263547root8
postorder…..12345678root