数据结构建立二叉树并输出其先序后序中序遍历
时间: 2024-12-18 07:37:44 浏览: 17
在计算机科学中,数据结构中的二叉树是一种重要的非线性数据结构,由节点组成,每个节点最多有两个子节点,通常表示为左孩子和右孩子。构建二叉树并输出其三种遍历方式(先序、后序和中序)的过程如下:
**1. 先序遍历(Preorder Traversal)**:
- 从根节点开始,先访问当前节点,然后递归地遍历左子树,最后遍历右子树。
示例算法:
```python
def preorder_traversal(root):
if root is not None:
print(root.val) # 输出节点值
preorder_traversal(root.left)
preorder_traversal(root.right)
```
**2. 后序遍历(Postorder Traversal)**:
- 先递归地遍历左右子树,最后访问根节点。
示例算法:
```python
def postorder_traversal(root):
if root is not None:
postorder_traversal(root.left)
postorder_traversal(root.right)
print(root.val)
```
**3. 中序遍历(Inorder Traversal)**:
- 从根节点开始,先遍历左子树,然后访问当前节点,最后遍历右子树。
示例算法:
```python
def inorder_traversal(root):
if root is not None:
inorder_traversal(root.left)
print(root.val)
inorder_traversal(root.right)
```
为了完整展示如何建立一个二叉树并输出遍历结果,假设我们有一个简单的二叉树创建函数:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
# 构建示例二叉树
root = TreeNode(1)
root.left = TreeNode(2)
root.right = TreeNode(3)
root.left.left = TreeNode(4)
root.left.right = TreeNode(5)
# 打印遍历结果
print("先序遍历:", preorder_traversal(root))
print("后序遍历:", postorder_traversal(root))
print("中序遍历:", inorder_traversal(root))
```
阅读全文