• 树存储结构-二叉树


    1、什么是二叉树:

    (1)是有序树(任意结点的子结点之间存在某种规律);

    (2)每个结点度不为2(最多只能有两个分支)。

     2、二叉树的性质

    1. 二叉树中,第 i 层最多有 2i-1 个结点。
    2. 如果二叉树的深度为 K,那么此二叉树最多有 2K-1 个结点。
    3. 二叉树中,终端结点数(叶子结点数)为 n0,度为 2 的结点数为 n2,则 n0=n2+1。

    性质3公式的计算:

     二叉树还可以继续分类,衍生出满二叉树和完全二叉树。

    3、满二叉树

            二叉树中除了叶子结点以外,树中的每个结点的度都为2,则为满二叉树。

    满二叉树除了满足普通二叉树的性质,还具有以下性质:

    1. 满二叉树中第 i 层的节点数为 2n-1 个。
    2. 深度为 k 的满二叉树必有 2k-1 个节点 ,叶子数为 2k-1。
    3. 满二叉树中不存在度为 1 的节点,每一个分支点中都两棵深度相同的子树,且叶子节点都在最底层。
    4. 具有 n 个节点的满二叉树的深度为 log2(n+1)。

    4、完全二叉树

            如果二叉树中去掉最后一层结点是满二叉树,且最后一层结点遵循依次从左到右分布,则为满二叉树。

    满二叉树:

     非满二叉树:

     完全二叉树也是一棵特殊的满二叉树。

    完全二叉树除了具有普通二叉树的性质,它自身也具有一些独特的性质,比如说,n 个结点的完全二叉树的深度为 ⌊log2n⌋+1。

    ⌊log2n⌋ 表示取小于 log2n 的最大整数。例如,⌊log24⌋ = 2,而 ⌊log25⌋ 结果也是 2。

    对于任意一个完全二叉树来说,如果将含有的结点按照层次从左到右依次标号(如图 3a)),对于任意一个结点 i ,完全二叉树还有以下几个结论成立:

    1. 当 i>1 时,父亲结点为结点 [i/2] 。(i=1 时,表示的是根结点,无父亲结点)
    2. 如果 2*i>n(总结点的个数) ,则结点 i 肯定没有左孩子(为叶子结点);否则其左孩子是结点 2*i 。
    3. 如果 2*i+1>n ,则结点 i 肯定没有右孩子;否则右孩子是结点 2*i+1 。
  • 相关阅读:
    揭秘制造业精益生产和智慧供应链管理背后的秘密武器!
    Django框架
    【HCIP-WLAN V2.0 正式发布!】
    flask——数据库连接池、wtfroms、信号、多app应用、flask-script
    基于python的网络爬虫搜索引擎的设计
    几个时间戳相关函数
    Reactive 判断的API(逻辑判断)
    揭秘亚马逊,eBay,沃尔玛的运营秘籍:如何实现爆款产品并获得更高流量?
    函数的凹凸性与拐点习题
    王道数据结构C语言循环链表基本操作实现
  • 原文地址:https://blog.csdn.net/qq_51701007/article/details/126476952