写完整代码,根据前序遍历的顺序建立一棵二叉树,并根据遍历规则遍历二叉树。 打印输出。 3、实验要求 (1)根据前序遍历的顺序创建一棵二叉树; ()对二叉树进行前序、中序、后序遍历。
时间: 2024-12-13 21:15:51 浏览: 13
在Python中,我们可以使用递归的方式来实现这个功能。首先,我们需要定义一个二叉树节点类,然后通过前序遍历的序列构建二叉树。这里是一个简单的示例:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def build_tree(preorder):
if not preorder:
return None
root_val = preorder[0]
root = TreeNode(root_val)
# 找到根节点之后剩余的前序遍历元素
index = preorder.index(root_val) + 1
# 用剩余部分的前序遍历构造左子树和右子树
root.left = build_tree(preorder[1:index]) if index < len(preorder) else None
root.right = build_tree(preorder[index:]) if index + 1 < len(preorder) else None
return root
# 假设我们有如下的前序遍历序列(例如 [3,9,20,15,7])
preorder = [3, 9, 20, 15, 7]
root = build_tree(preorder)
# 定义递归遍历函数
def traverse_tree(node, order='pre'):
if node is None:
return []
result = []
if order == 'pre':
result.append(node.val)
result += traverse_tree(node.left, order)
result += traverse_tree(node.right, order)
return result
# 遍历并打印结果
print("Preorder traversal:", traverse_tree(root, 'pre'))
print("Inorder traversal:", traverse_tree(root, 'in'))
print("Postorder traversal:", traverse_tree(root, 'post'))
```
在这个例子中,`build_tree`函数用于根据前序遍历顺序创建二叉树,而`traverse_tree`则实现了前序、中序和后序遍历。
阅读全文