用先序遍历的顺序输入一棵二叉树到电脑中,然后对该二叉树进行中序遍历 和后序遍历。
时间: 2023-06-25 13:04:36 浏览: 59
假设输入的二叉树是这样的:
```
A
/ \
B C
/ / \
D E F
```
先序遍历的顺序是:A B D C E F
中序遍历的顺序是:D B A E C F
后序遍历的顺序是:D B E F C A
下面是 Python 代码实现:
```python
class Node:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
def build_tree(preorder):
if not preorder:
return None
root_val = preorder.pop(0)
root = Node(root_val)
index = inorder.index(root_val)
root.left = build_tree(preorder[:index])
root.right = build_tree(preorder[index:])
return root
def inorder_traversal(root):
if not root:
return
inorder_traversal(root.left)
print(root.val, end=' ')
inorder_traversal(root.right)
def postorder_traversal(root):
if not root:
return
postorder_traversal(root.left)
postorder_traversal(root.right)
print(root.val, end=' ')
preorder = ['A', 'B', 'D', 'C', 'E', 'F']
inorder = ['D', 'B', 'A', 'E', 'C', 'F']
root = build_tree(preorder)
print('Inorder Traversal:', end=' ')
inorder_traversal(root) # 输出:D B A E C F
print('\nPostorder Traversal:', end=' ')
postorder_traversal(root) # 输出:D B E F C A
```