• 二叉树的先序、中序、后序遍历【重点】


    二叉树操作:

      一.  已知两种遍历序列求原始二叉树

      二.  遍历:

        1.  先序遍历(先访问根节点)

          先访问根节点

          再先序访问左子树

          再先序访问右子树

     

        访问左子树步骤:

          1.  从根节点A开始

          2.  访问A的左子树(以B为根节点的树)

          3.  访问B的左子树(以D为根节点的树)

          4.  访问D的左子树,为空

          5.  访问D的右子树,为空,D访问完毕,意味着B的左子树访问完了

          6.  返回到B,访问B的右子树,为空,B访问完毕,意味着A的左子树访问完了

          7.  返回到A

        即左子树遍历为A-B-D

        访问右子树:

          操作与上相同,最后A的右子树访问完毕,意味着整棵树访问完毕

        最终遍历结果是:A-B-D-C-E-F-G

        2.  中序遍历(中间访问根节点

          先遍历左子树

          再访问根节点

          再中序遍历右子树

     

    操作:

    1.  从根节点A的左子树(以B为根节点)开始

    2.  访问B的左子树,为空

    3.  访问根节点B

    4.  访问B的右子树(以C为根节点)

    5.  访问C的左子树(以D为根节点)

    6.  访问D的左子树,为空

    7.  访问根节点D

    8.  访问D的右子树,为空,D访问完毕

    9.  返回到C,访问根节点C

    10.  访问C的右子树(以E为根节点)

    11.  访问E的左子树,为空

    12.  访问根节点E

    13.  访问E的右子树,为空,E访问完毕

    14.  返回到C,C访问完毕

    15.  返回到B,B访问完毕

    16.  返回到A,访问根节点A

    17.  访问A的右子树(以F为根节点)……操作同上

    最终结果:B-D-C-E-A-L-F-N-Q-M

        3.  后序遍历(最后访问根节点

    先遍历左子树

    再遍历右子树

    再访问根节点

     

    操作:

    1.  先访问A的左子树(以B为根节点)

    2.  访问B的左子树,为空;访问B的右子树,为空;访问根节点B,访问完毕

    3.   返回到A,访问A的右子树(以C为根节点)

    4.  访问C的左子树(以D为根节点)

    5.  访问D的左子树,为空;访问D的右子树,为空;访问根节点D,访问完毕

    6.  返回到C,访问C的右子树(以E为根节点)

    7.  访问E的左子树(以F为根节点)

    8.  访问F的左子树(以M为根节点)

    9.  访问M的左子树,为空;访问M的右子树,为空;访问根节点M,访问完毕

    10.  返回到F;访问F的右子树,为空;访问根节点F,访问完毕

    11.  返回到E;访问E的右子树(以L为根节点)

    12. 访问L的左子树,为空;访问L的右子树,为空;访问根节点L,访问完毕

    13.  返回到E,访问根节点E,访问完毕

    14.  返回到C,访问根节点C,访问完毕

    15.  返回到A,访问根节点A,访问完毕

    最终结果是:B-D-M-F-L-E-C-A

  • 相关阅读:
    小熊派接入华为IOT
    VS2022 C++ 支持热重载
    Go入门笔记43HGet查询
    Go入门笔记45在WSL2上测试串口编程
    Yarn全新安装
    EdgexGo2.0学习19 no secty依然提示让输入token
    Ubuntu20.04安装Emqx
    shell脚本中echo显示内容带颜色
    EdgexGo2.0学习20 编译EdgeX Go UI
    EdgexGo2.0学习18 消息总线目标
  • 原文地址:https://www.cnblogs.com/sunbr/p/11377506.html
Copyright © 2020-2023  润新知