python-树形结构和遍历

 1 #!/usr/bin/python
 2  
 3 class TreeNode(object):
 4     def __init__(self,data = 0,left = None,right = None):
 5         self.data = data
 6         self.left = left
 7         self.right = right
 8  
 9 class Bitree(object):
10     def __init__(self,root=None):
11         self.root = root
12  
13     def is_empty(self):
14         if self.root is None:
15             return True
16         else:
17             return False
18  
19     def preOrder(self,treenode):
20         if treenode is None:
21             return
22  
23         print(treenode.data)
24         self.preOrder(treenode.left)
25         self.preOrder(treenode.right)
26  
27     def inOrder(self,treenode):
28  
29         if treenode is None:
30             return
31  
32         self.inOrder(treenode.left)
33         print(treenode.data)
34         self.inOrder(treenode.right)
35  
36     def postOrder(self,treenode):
37  
38         if treenode is None:
39             return
40  
41         self.postOrder(treenode.left)
42         self.postOrder(treenode.right)
43         print(treenode.data)
44  
45  
46  
47 n1 = TreeNode(1)
48 n2 = TreeNode(2,n1)
49 n3 = TreeNode(3)
50 n4 = TreeNode(4)
51 n5 = TreeNode(5,n3,n4)
52 n6 = TreeNode(6,n2,n5)
53 n7 = TreeNode(7,n6)
54 n8 = TreeNode(8)
55 root = TreeNode('root',n7,n8)
56  
57 bt = Bitree(root)
58 print ('preOrder......')
59 print (bt.preOrder(bt.root))
60 print ('inOrder......')
61 print (bt.inOrder(bt.root))
62 print ('postOrder.....')
63 print (bt.postOrder(bt.root))
原文地址:https://www.cnblogs.com/chengyunshen/p/7195865.html