编写以上二叉树的程序,并分别按照前序遍历二叉树次序、中序遍历二叉树次序和后序遍历二叉树次序输出显示二叉树各结点的信息。
时间: 2024-11-28 07:18:44 浏览: 4
为了编写这个程序,我们首先需要定义二叉树的节点结构,并创建函数来实现前序、中序和后序遍历。这里假设我们使用Python语言:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def pre_order_traversal(root):
if root is not None:
print(f"{root.val} -> ", end="")
pre_order_traversal(root.left)
pre_order_traversal(root.right)
def in_order_traversal(root):
if root is not None:
in_order_traversal(root.left)
print(f"{root.val} -> ", end="")
in_order_traversal(root.right)
def post_order_traversal(root):
if root is not None:
post_order_traversal(root.left)
post_order_traversal(root.right)
print(f"{root.val} -> ", end="")
# 你可以在这里输入你的前序遍历的结果来构建二叉树
# 假设前序遍历结果为 'A->B->D->H->I->E->J->C'
pre_order_values = ['A', 'B', 'D', 'H', 'I', 'E', 'J', 'C']
root = build_tree(pre_order_values, 0)
# 之后,你可以分别调用上述三个函数来遍历并打印节点
pre_order_traversal(root)
print("\n")
in_order_traversal(root)
print("\n")
post_order_traversal(root)
def build_tree(values, index):
if index >= len(values):
return None
node_val = values[index]
node = TreeNode(node_val)
node.left = build_tree(values, 2 * index + 1) # 根据前序遍历索引规则
node.right = build_tree(values, 2 * index + 2)
return node
```
在这个示例中,`build_tree`函数根据前序遍历的规律构造二叉树。然后分别调用`pre_order_traversal`、`in_order_traversal`和`post_order_traversal`函数来完成三种遍历的输出。
阅读全文