zoukankan      html  css  js  c++  java
  • 二叉树的遍历(分析思路和根据两个遍历条件写出遍历图形和推出另一个遍历)

    二叉树的遍历(分析思路和根据两个遍历条件写出遍历图形):

    (D为访问根节点,L为访问左子树,R为访问右子树

    1.二叉树的前序遍历的方式为DLR( 即先访问根,然后左子树,然后右子树)

     中序遍历为LDR

     后序遍历为LRD

                                   

                       (图 1.0

    前序遍历的方式为先访问根节点A

    然后访问左子树B,D,G 

                                           

                         (图 1.1

    然后按照DLR的方式访问,访问根节点B

    然后访问左子树D,G:

                                    

                            (图 1.2

    然后按照DLR的方式访问,访问根节点D

    最后访问G节点

    之后访问A的右子树

                                  

               

                          (图 1.3

    最后前序遍历的结果为ABDGCEF

    中序遍历为: DGBAECF

    后序遍历为   GDBEFCA

                                       

                     (图 1.4

    现在反过来:知道他的两个遍历结果(其中一个必须为中序遍历:用于确定他每次递归的根节点)

    现在讲一种情况:

    前序遍历的为ABDGCEF

    中序遍历为: DGBAECF

    前序遍历的第一个肯定为根节点,所以A为根节点         (图 1.5

    遍历结果可表示为ABDG)(CEF

                                               

                     (DGBAECF

       

    根据中序遍历A的左边DGB为左子树,右边ECF为右子树

    根据前序遍历:左子树BDG的根节点为B,,再根据中序遍历知道DGB的左子树

    ABDG))(CEF

    ((DGBAECF

                                             

               

    (图 1.5

    根据中序遍历DG的根节点为D,再根据中序遍历,GD的右边

    所以左边的结构为

                                      

    (图 1.6

    右边和左边的分析方式一致

    ABDG))(CEF

    ((DGBAECF

    根据前序遍历:右子树的根节点为C

    根据中序遍历:EC的左子树,GC的右子树

    所以最终的结果如图:1.4

                                                    

    已知中序遍历和后续遍历两个条件的分析思路也是一样的,同学们可以试一试、


  • 相关阅读:
    react Table key值使用方式
    C# EF查询不同分组的第一条数据
    C# MVC PDFJS URL传参方式+文件流方式在线展示文档
    docker nginx配置写错,启动不了容器的解决方案
    网络编程之BIO和NIO
    网络编程之BIO和NIO
    IT职场心得感想
    我们希望能与各位快乐拼博的站长们一路前行
    UART, SPI详解
    创业精神
  • 原文地址:https://www.cnblogs.com/duanxingxing/p/6550638.html
Copyright © 2011-2022 走看看