python的二叉树应用

一 构建二叉树的结构



 
 
二 代码
  1. classBTree:
  2. def __init__(self,value):
  3. self.left =None
  4. self.data = value
  5. self.right =None
  6. def insertLeft(self,value):
  7. self.left =BTree(value)
  8. return self.left
  9. def insertRight(self,value):
  10. self.right =BTree(value)
  11. return self.right
  12. def show(self):
  13. print(self.data)
  14. #先序遍历
  15. def preorder(node):
  16. if node.data:
  17. node.show()
  18. if node.left:
  19. preorder(node.left)
  20. if node.right:
  21. preorder(node.right)
  22. #中序遍历
  23. def inorder(node):
  24. if node.data:
  25. if node.left:
  26. inorder(node.left)
  27. node.show()
  28. if node.right:
  29. inorder(node.right)
  30. #后序遍历
  31. def postorder(node):
  32. if node.data:
  33. if node.left:
  34. postorder(node.left)
  35. if node.right:
  36. postorder(node.right)
  37. node.show()
  38. if __name__ =='__main__':
  39. Root=BTree('Root')
  40. A =Root.insertLeft('A')
  41. C = A.insertLeft('C')
  42. D = A.insertRight('D')
  43. F = D.insertLeft('F')
  44. G = D.insertRight('G')
  45. B =Root.insertRight('B')
  46. E = B.insertRight('E')
  47. print('***********************')
  48. print('先序遍历')
  49. print('***********************')
  50. preorder(Root)
  51. print('***********************')
  52. print('中序遍历')
  53. print('***********************')
  54. inorder(Root)
  55. print('***********************')
  56. print('后序遍历')
  57. print('***********************')
  58. postorder(Root)
 
三 运行结构
***********************
先序遍历
***********************
Root
A
C
D
F
G
B
E
***********************
中序遍历
***********************
C
A
F
D
G
Root
B
E
***********************
后序遍历
***********************
C
F
G
D
A
E
B
Root

猜你喜欢

转载自cakin24.iteye.com/blog/2382422
今日推荐