1. 程式人生 > >哈夫曼編碼的長度計算問題

哈夫曼編碼的長度計算問題

問題是:
已知某字串S中共有8種字元,各種字元分別出現2次、1次、4次、5次、7次、3次、4次和9次,對該字串進行哈夫曼,問該字串的編碼至少有多少位?

我們首先構造一個哈夫曼樹:
這裡寫圖片描述
其中編碼位數就是出現 次數×編碼位(bit)
也就是2×5+1×5+4×3+5×3+7×2+3×4+4×3+9×2=98,所以該字串的編碼長度至少是98位。
這個就是帶權路徑長度,因為出現的次數就是權重,編碼位數就是節點到根節點的層數。