求满二叉树(哈夫曼树)叶子节点和非叶子节点的数目

先上题目:

    一颗有n(n>0)个节点的满二叉树共有几个叶子节点和非叶子节点?请写出解题过程

方法有两种:设有x个叶子节点和y个非叶子节点

    法一:若该该二叉树有k层(k>0),则

                   第一层有一个节点、

                   第二层有两个节点

                    第三层有四个节点

                    第四层有八个几点

                   ……

                   第k层有2的k-1次方个节点

  则一颗k层的满二叉树共有1+2+4+……+2的k-1次方= n(1)

(1)*2 = 2+4+……+2的k-1次方+2的k次方 = 2n(2)

由(1)、(2)易得n = 2的k次方 – 1(3)

又因为叶子节点x = 2的k-1次方 = y+1(4)

由(3)、(4)易得x=(n+1)/2,y=(n-1)/2

  法二:n = x + y(1)

经过求索思考得 y = x – 1(2)

x = (n+1)/2,y = n – y = x – 1 = (n – 1)/2

挺有意思的,锻炼下大脑别生锈了

    原文作者:满二叉树
    原文地址: https://blog.csdn.net/changshenglugu/article/details/45095161
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞