二叉树性质及证明

作者: gis11 | 来源:发表于2019-11-13 13:31 被阅读0次

    二叉树性质:

    (1)规定根节点层次为0,则一棵非空二叉树的第i层上最多有2i个结点。

    (2)规定根节点层次为0,则深度为k的二叉树的最大结点数为2(k+1)-1。

    (3)具有n个结点的完全二叉树的深度k为不超过lb(n+1)-1的最大整数。

    (4)对于一棵非空二叉树,如果叶节点个数为n0,度为2的结点数为n2,则有n0=n2+1。

    (5)对于具有n个结点的完全二叉树,按上下左右顺序对结点从0编号,则对于序号为i的结点有:

    如果i>0,则i的双亲序号为(i-1)/2 (/为整除)

    如果2*i+1<n,则序号为i结点的左孩子为2*i+1,若大于n,则无左孩子

    如果2*i+2<n,则序号为i结点的右孩子为2*i+2,若大于n,则无右孩子


    证明:

    (1)根据二叉树的特点,每个结点可分至多两个叉,规律可寻,即得2i。

    (2)深度为k的二叉树所有最大结点个数,即满二叉树时,根据(1)每层结点相加,得2(k+1)-1。

    (3)根据(2),n个结点必然大于深度为其上一层结点数,小于等于同等深度满二叉结点数,即 2k-1<n<=2k+1-1

    移项,两边取2的对数,得 k<lb(n+1)<=k+1

    (4)二叉树只有0,1,2度结点所以n=n0+n1+n2

        二叉树的进入分支数,即有双亲的结点数除去根节点 M=n-1

        二叉树的发出结点数,1度发出1个,2度发出2。  可有M=n1+2*n2

        综上可移项得n0=n2+1

    (5)对于性质5,可举例图示,按序号代替具体数值

                      0

              1             2

            3    4     5      6 

          7    8

      1号在其层上索引为0,2号在其层索引为1。  同理3号在其层索引为0,5号其层索引为2 。因为二叉树分二叉的特点 可知按照各自本层索引有关系 y=2*x    x为双亲层索引 y为孩子层索引。

      那么只需求得各自层内索引即可,因为按顺序编号,所以各自层索引就是 结点的二叉树索引减去除去本层的结点总数即

    2*(i-(2k-1)=j-(2k-1) 移项  i为双亲结点号,j为左孩子结点号 ,

    得左孩子结点索引j=2*i+1 。

    同理 右孩子j=2*i+2 ,双亲 (i-1)/2

    PS:根据性质5 我们就可以用一维数组存储二叉树了,可以索引并修改。 对于性质的应用,举例:哈夫曼编码,总结点数为2*n0-1,有兴趣自行推导 

    相关文章

      网友评论

        本文标题:二叉树性质及证明

        本文链接:https://www.haomeiwen.com/subject/vsphictx.html