1樓:笑菌子
這題表示哈夫曼樹的節點的度要麼是0要麼是m設度不為0(即非葉結點)的個數為x
則總的結點數為:x+n
除根結點外,其餘的每乙個結點都有乙個分支連向乙個結點,對於度為m的每個結點都有m個分支,而度為0的結點是沒有分支的,所以從分支的情況來看
總的結點數字:x*m + 1(這裡的1為根結點)兩者相等,所以答案是 (n-1) / (m-1)
2樓:匿名使用者
哈夫曼樹沒有度為1的結點,所以答案是n-1.
可能是深度為m的哈夫曼樹吧,和題目關係不大..
3樓:匿名使用者
"樹的度是指,樹中所有結點的度的總和;
而結點的度就是指結點的後繼個數;
也就是說,樹的度=結點1的度+結點2的度)+結點3的度+...+結點n的度."
反對樓上的這一段話,因為他把概念弄錯了,樹的度是所有結點的度的最大值,而不是總和,即是:
樹的度=max(結點1的度,結點2的度,結點3的度,...,結點n的度)
4樓:匿名使用者
首先,你要清楚的是,樹的度與結點的度是不同的概念!
樹的度是指,樹中所有結點的度的總和;
而結點的度就是指結點的後繼個數;
也就是說,樹的度=結點1的度+結點2的度)+結點3的度+...+結點n的度.
而我們知道葉子結點是沒有後繼的,也就是說沒有度的,而根結點是沒有前驅的,
啊...
然後呢...
我所知道就只有那麼多了,
不好意思!!!:)
有人可以幫我注釋一段關於用c語言實現哈夫曼樹的**嗎?
權值w={2.,3,5,7,9,12},畫出哈夫曼樹,並求出其帶權路徑長度
5樓:伊紅螺
哈夫曼樹見圖。用word隨便畫的,比較難看。
帶權路徑長度 (2+3)*3+(5+7+9)*2+12*1=15+42+12=69
其實你可以根據下面的直接求。
哈夫曼樹的構造
假設有n個權值,則構造出的哈夫曼樹有n個葉子結點。 n個權值分別設為 w1、w2、…、wn,則哈夫曼樹的構造規則為:
(1) 將w1、w2、…,wn看成是有n 棵樹的森林(每棵樹僅有乙個結點);
(2) 在森林中選出兩個根結點的權值最小的樹合併,作為一棵新樹的左、右子樹,且新樹的根結點權值為其左、右子樹根結點權值之和;
(3)從森林中刪除選取的兩棵樹,並將新樹加入森林;
(4)重複(2)、(3)步,直到森林中只剩一棵樹為止,該樹即為所求得的哈夫曼樹
6樓:匿名使用者
我認為應該這樣算的。
哈夫曼編碼問題,高手幫我,哈夫曼編碼問題 大神救我
createht建立哈夫曼樹的 有點問題,修改如下void createht htnode ht,int n int i,k,lnode,rnode int min1,min2 for i 0 i 2 n 1 i ht i parent ht i lchild ht i rchild 1 for i...
求助有關哈夫曼樹的問題!急!滿意的答案再加
楊嘉路 路徑和路徑長度 若在一棵樹中存在乙個結點序列k1,k2,kj 使得ki是ki 1的雙親 1 i j 則稱此結點序列是從k1到kj的路徑。從k1 kj所經過的分支數稱為這兩結點間的路徑長度。結點的權和帶權路徑長度 在許多應用中,常為樹中的結點賦上一有意義的實數,該實數稱為結點的權。結點的帶權路...
解碼系統,對文字檔案中的字元進行哈夫曼編碼,生成編碼檔案(壓縮檔案,字尾名 co
超人先生一號 我給你個差不多的,你自己修改一下就可以用了 huffman編碼和解碼 include include include include typedef struct htnode,huffmantree typedef struct huffmancode typedef struct ...