求滿二叉樹(哈夫曼樹)葉子節點和非葉子節點的數目

先上題目:

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

挺有意思的,鍛鍊下大腦別生鏽了

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