zoukankan      html  css  js  c++  java
  • 二叉树的先序、中序、后序遍历【重点】

    二叉树操作:

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

      二.  遍历:

        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

  • 相关阅读:
    《别让不会记笔记害了你》豆瓣:3.9
    《费曼学习法用输出倒逼输入》 豆瓣:6.6
    《面人麻生》豆瓣:8.8 &《哈瓦那》豆瓣:7.8
    C# 获取汉语拼音全码及简码
    SQL Server 获取汉语拼音简码
    ASP.NET 3.5中的ListView控件和DataPager控件
    Appliction_BeginRequest
    身份证验证
    取得数据库表信息的Sql语句
    Spark shuffle失败的可能原因 及解决办法
  • 原文地址:https://www.cnblogs.com/sunbr/p/11377506.html
Copyright © 2011-2022 走看看