树的遍历例子均在该树下进行
森林的遍历例子均在该森林中进行
树的遍历
先根遍历:
- 访问根节点
- 按照从左到右的顺序先根遍历根结点的每一棵子树
- 遍历结果A\B\E\F\K\L\C\G\D\H\I\M\N\J
后根遍历
- 按照从左到右的顺序后根遍历根结点的每一棵子树
- 访问根节点
- 遍历结果E\K\L\F\B\G\C\H\M\N\I\J\D\A
层序遍历
- 树的层序遍历也称为树的广度遍历,就是从树的第一层(根结点)
开始,自上至下逐层遍历,在同一层中,则按从左到右的顺序
对结点逐个访问。
遍历结果A\B\C\D\E\F\G\H\I\J\K\L\M\N
注:
- 树的先根遍历与其转化后相应二叉树的先序遍历的
结果序列相同。 - 树的后根遍历与其转化后相应二叉树的中序遍历的
结果序列相同。
森林的遍历
森林的先根遍历:
- 若森林为空,返回
- 访问森林中第一棵树的根结点
- 先根遍历第一棵树的根结点的子树森林
- 先根遍历除第一棵外其它树组成的森林
- 遍历结果A、B、C、D、E、F、G、H、I
森林的中序遍历:
- 若森林为空,返回
- 中根遍历第一棵树的根结点的子树森林
- 访问森林中第一棵树的根结点
- 中根遍历除第一棵外其它树组成的森林
- 遍历结果B、C、D、A、F、E、H、I、G
森林的后根遍历:
- 若森林为空,返回
- 后根遍历第一棵树的根结点的子树森林
- 后根遍历除第一棵外其它树组成的森林
- 访问森林中第一棵树的根结点
- 遍历结果D、C、B、F、I、H、G、E、A
注:
- 森林的先根遍历与其转化后相应二叉树的先序遍历的结果序
列相同。 - 森林的中根遍历与其转化后相应二叉树的中序遍历的结果序
列相同。 - 森林的后根遍历与其转化后相应二叉树的后序遍历的结果序
列相同。
在实际做题过程中,我自我感觉先将森林转换为二叉树,再进行遍历比较方便。