假设data = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J' };这个是我们要存储的数据,求二叉树的先序遍历,中序遍历和后序遍历。
时间: 2023-12-21 10:30:29 浏览: 64
各种二叉树的数据结构.rar_二叉树_二叉树 遍历_实现二叉树的先、中、后序递归遍历算_数据结构_数据结构 算法
以下是二叉树的先序遍历,中序遍历和后序遍历的Python实现:
```python
class Node:
def __init__(self, val):
self.left = None
self.right = None
self.val = val
def build_tree(data, start, end):
if start > end:
return None
mid = (start + end) // 2
root = Node(data[mid])
root.left = build_tree(data, start, mid - 1)
root.right = build_tree(data, mid + 1, end)
return root
def preorder_traversal(root):
if root:
print(root.val, end=' ')
preorder_traversal(root.left)
preorder_traversal(root.right)
def inorder_traversal(root):
if root:
inorder_traversal(root.left)
print(root.val, end=' ')
inorder_traversal(root.right)
def postorder_traversal(root):
if root:
postorder_traversal(root.left)
postorder_traversal(root.right)
print(root.val, end=' ')
data = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
root = build_tree(data, 0, len(data) - 1)
print('先序遍历:', end='')
preorder_traversal(root)
print()
print('中序遍历:', end='')
inorder_traversal(root)
print()
print('后序遍历:', end='')
postorder_traversal(root)
print()
```
阅读全文