树的遍历

树的遍历是指:按某种方式访问树中每个结点,且每个结点只访问一次

主要讲两种:

  • 先根遍历

    • 先访问根结点
    • 再依次遍历根结点的每棵子树
    • 规律:先根后子树
  • 后根遍历

    • 先依次遍历根结点的每棵子树
    • 最后访问根结点
    • 规律:先子树后根

树的遍历与二叉树的对应关系

  • 树的先根遍历序列 = 对应二叉树的先序遍历序列
  • 树的后根遍历序列 = 对应二叉树的中序遍历序列

这个对应关系非常重要,常考。


森林的遍历

基于“森林和树相互递归”的定义,森林有两种遍历方法。

  • 先序遍历森林

    • 访问森林中第一棵树的根结点
    • 先序遍历第一棵树中根结点的子树森林
    • 先序遍历除去第一棵树后的剩余森林
  • 后序遍历森林

    • 后序遍历第一棵树后根结点的子树森林
    • 访问第一棵树的根结点
    • 后序遍历除去第一棵树后的剩余森林

森林的遍历与二叉树的对应关系

  • 森林的先序遍历 = 对应二叉树的先序遍历
  • 森林的后序遍历 = 对应二叉树的中序遍历

这一节最该背的结论

  • 树:

    • 先根遍历
    • 后根遍历
  • 森林:

    • 先序遍历
    • 后序遍历
  • 对应关系:

    • 树的先根遍历 ↔ 二叉树的先序遍历
    • 树的后根遍历 ↔ 二叉树的中序遍历
    • 森林的先序遍历 ↔ 二叉树的先序遍历
    • 森林的后序遍历 ↔ 二叉树的中序遍历

内容也比较简单,几分钟就搞定了。
本来是想继续往下看哈夫曼树的,
但是好累啊,头脑发昏了。
还是明天再说吧,洗个澡睡觉了。
冻柚子