数据结构编写一个建立如下图所示二叉树的程序,并分别按照前序遍历二叉树次序、中序遍历二叉树次序和后序遍历二叉树次序输出显示二叉树各结点的信息。
时间: 2024-11-28 20:17:27 浏览: 21
为了创建一个能够构建二叉树并进行前序、中序和后序遍历的程序,我们可以使用Python语言和字典数据结构来表示二叉树节点。下面是一个简单的示例:
```python
class Node:
def __init__(self, value):
self.value = value
self.left = None
self.right = None
def build_bst(preorder, inorder):
if not preorder or not inorder:
return None
root_value = preorder[0]
root = Node(root_value)
# Find the index of the root node in inorder list
root_index = inorder.index(root_value)
# Build left and right subtrees recursively using the split indices
root.left = build_bst(preorder[1:root_index+1], inorder[:root_index])
root.right = build_bst(preorder[root_index+1:], inorder[root_index+1:])
return root
# 示例数组,用于演示如何构造二叉树
preorder = [1, 2, 4, 5, 3, 6] # 前序遍历
inorder = [4, 2, 5, 1, 6, 3] # 中序遍历
# 创建根节点
bst_root = build_bst(preorder, inorder)
# 定义遍历函数
def traverse_tree(node, traversal_type='pre'):
if node is None:
return
if traversal_type == 'pre':
print(f"{node.value} ->", end=" ")
traverse_tree(node.left, traversal_type)
traverse_tree(node.right, traversal_type)
elif traversal_type == 'in':
traverse_tree(node.left, traversal_type)
print(f"{node.value} ->", end=" ")
traverse_tree(node.right, traversal_type)
else: # 默认为后序遍历
traverse_tree(node.left, traversal_type)
traverse_tree(node.right, traversal_type)
print(f"{node.value}")
# 打印三种遍历结果
traverse_tree(bst_root, 'pre') # 前序遍历
print()
traverse_tree(bst_root, 'in') # 中序遍历
print()
traverse_tree(bst_root) # 后序遍历 (默认)
```
这个程序首先定义了一个`Node`类来表示二叉树节点,然后通过给定的前序和中序遍历序列构建二叉搜索树。最后,我们实现了三个遍历函数:前序、中序和默认的后序遍历。
阅读全文