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

先上题目:

    一颗有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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章