1. 前序遍历
- 顺序:根节点 → 左子树 → 右子树
- 特点:先访问根节点,再递归遍历左子树和右子树。
2. 中序遍历
- 顺序:左子树 → 根节点 → 右子树
- 特点:先递归遍历左子树,再访问根节点,最后遍历右子树。对二叉搜索树(BST)进行中序遍历时,结果是有序的。
3. 后序遍历
- 顺序:左子树 → 右子树 → 根节点
- 特点:先递归遍历左子树和右子树,最后访问根节点。
关系总结
-
访问根节点的时机:
- 前序遍历:最先访问根节点。
- 中序遍历:在左子树之后、右子树之前访问根节点。
- 后序遍历:最后访问根节点。
-
应用场景:
- 前序遍历:用于复制树或生成前缀表达式。
- 中序遍历:常用于二叉搜索树的有序输出。
- 后序遍历:适用于删除树或生成后缀表达式。
示例
对于二叉树:
1
/ \
2 3
/ \
4 5
- 前序遍历:1 → 2 → 4 → 5 → 3
- 中序遍历:4 → 2 → 5 → 1 → 3
- 后序遍历:4 → 5 → 2 → 3 → 1