哈夫曼樹(最優二叉樹)
其目的:
找出存放一串字符需要的最少的二進制編碼
構造方法:
1.得到每種字符出現的頻率或者概率,即權值,構成頻率表
2.找出頻率最小的兩個,小的在左邊,大的在右邊,組成二叉樹。父節點為兩者的和(不計入WPL計算),頻率表更新(刪除這兩個數,同時加入兩數的和)
3.重復2.
4.最后標記01,0左1右,每個字符的二進制表示從上到下讀出。
詳細例子:
https://blog.csdn.net/qq_29519041/article/details/81428934
總結:頻率高的字符編碼越短。
帶權路徑長度計算:
權值*深度求和。
比如下面這個樹:
頻率表:3 5 7 8 11 14 23 29
wpl=(3+5)*5+7*4+(8+11+14)*3+(23+29)*2=271