#coding=utf-8 #用列表构建树 G = ['G',['H','I']]#每个列表都包含该元素和该元素的自成员 H = ['H',[]] #用类构建二叉树 class Btree(): def __init__(self, value): self.left = None self.data = value self.right = None def insertleft(self,value): self.left = Btree(value) return self.left def insertright(self, value): self.right = Btree(value) 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("root") A = root.insertleft('A') B = root.insertright('B') C = A.insertleft('C') D = C.insertright('D') E = B.insertleft('E') print 'preorder' preorder(root) print 'inorder' inorder(root) print 'postorder' postorder(root)
python实现树及二叉树的遍历
最新推荐文章于 2023-07-17 23:26:42 发布