一、 树的遍历
树的遍历是指用某种方式访问树中的每个结点,且仅访问一次,有三种方式:先根遍历,后根遍历,层序遍历。
1. 先根遍历
- 若树非空,则先访问根结点,再按照从左到右的顺序遍历根结点的每一棵子树。
【注】树的先序遍历与其转换的相应的二叉树的先序遍历的结果序列相同。
2. 后根遍历
- 若树非空,则按照从左到右的顺序遍历根结点的每一棵子树,之后再访问根结点。
【注】树的后序遍历与其转换的二叉树的中序遍历的结果序列相同。
3. 层序遍历
- 按照高度顺序一层一层的访问整棵树。
先序遍历的结果是:ABEFGCDHI
后序遍历的结果是:EFGBCHIDA
层序遍历的结果是:ABCDEFGHI
二、森林的遍历
1. 先序遍历
- 访问第一棵树的根;
- 先根遍历第一棵树中根结点的子树森林;
- 先根遍历除去第一棵树之后剩余的树构成的森林;
【注】效果等同于依次对各个树进行先根遍历。
2. 中序遍历
- 遍历第一棵树中根结点的子树森林;
- 访问第一棵树的根;
- 中序遍历除去第一棵树之后剩余的树构成的森林;
【注】效果等同于依次对各个树进行后根遍历。
森林F:
森林的先序遍历结果:ABCDEFGHIJ
森林的中序遍历结果:BCDAFEHJIG