• 数据结构中无意识中抵触树结构,觉得没逻辑,哪儿有树长成那熊样的,但讨厌归讨厌,还得看看。
    首先是一些基本概念:

    1、度:结点拥有的子树数称为结点的度,就是当前结点下面有几个结点。度为0的结点称为叶结点或是终端结点

    2、层次:从跟开始定义其,根为第一层,根的孩子为第二层。树中结点的最大层次称为数的深度或是高度

    3、二叉树:是n(n>=0)个结点的有限集合,该集合或者为空集,或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树的二叉树组成。

    4、满二叉树:如果所有分支结点都存在左子树和右子树,并且所有叶子都在同一层上的树。

    5、完全二叉树:对一颗具有n个结点的二叉树按层序变好,如果变好为i(=1<i <=n)的结点与同样深度的满二叉树中变好为i的结点在二叉树中位置完全相同的树。

    二叉树遍历

    1、前序遍历(DLR),首先访问根结点,然后遍历左子树,最后遍历右子树。简记根-左-右。如下图的遍历顺序为:ABDGHCEIF

    2、中序遍历(LDR),首先遍历左子树,然后访问根结点,最后遍历右子树。简记左-根-右。如下图的遍历顺序为:GDHBAEICF

    3、后序遍历(LRD),首先遍历左子树,然后遍历右子树,最后访问根结点。简记左-右-根。如下图的遍历顺序为:GHDBIEFCA

    4、层序遍历,从根结点开始,从上而下逐层遍历,同层中从左到有遍历。如下图的遍历顺序为:ABCDEFGHI

    推到遍历结果

    已知一棵二叉树的前序遍历序列为ABCDEF,中序遍历为CBAEDF,问这棵二叉树的后序遍历结果是什么?

    分析:前序遍历中A为第一个,说明A是根结点,再由中序遍历中 CB A EDF知,CB是左子树,EDF是右子树;

    对于CB,前序遍历中先B后C,则B是A的左子树,C是B的子树,再根据中序中为CBA知C是B的左孩子;

    对于EDFF,根据前序遍历知D为A的右孩子,根据中序遍历遍历为EDF知E是D的左孩子,F是D的右孩子:

  • 相关阅读:
    jQuery Lazy Load 图片延迟加载
    jquery多级联动(ajax查数据库)
    在命令行快速切换目录(转载)
    推荐Mac软件Alfred
    Vim的snipMate插件
    腾讯CMEM的PHP扩展(转载)
    svn hooks使用
    samba基本配置
    linux进程状态详解(转)
    elk systemd管理
  • 原文地址:https://www.cnblogs.com/nygfcn1234/p/3205735.html
Copyright © 2020-2023  润新知