编写一个建立如下图所示二叉树的程序,并分别按照前序遍历二叉树次序、中序遍历二叉树次序和后序遍历二叉树次序输出显示二叉树各结点的信息
时间: 2023-12-10 21:33:29 浏览: 33
为了建立如下图所示的二叉树,我们可以使用Python中的Node类来表示每个节点,然后使用递归的方式来构建整个二叉树。具体实现如下:
```python
class Node:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
def build_tree():
# 构建二叉树
root = Node('A')
root.left = Node('B')
root.right = Node('C')
root.left.left = Node('D')
root.left.right = Node('E')
root.right.left = Node('F')
root.right.right = Node('G')
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=' ')
# 构建二叉树
root = build_tree()
# 前序遍历
print('前序遍历:', end='')
preorder_traversal(root)
print()
# 中序遍历
print('中序遍历:', end='')
inorder_traversal(root)
print()
# 后序遍历
print('后序遍历:', end='')
postorder_traversal(root)
print()
```
输出结果为:
```
前序遍历:A B D E C F G
中序遍历:D B E A F C G
后序遍历:D E B F G C A
```