数据结构c语言哈夫曼树

有一份电文中共使用 6个字符:a,b,c,d,e,f,它们的出现频率依次为0.23 0.04 0.32 0.17 0.06 0.18 试构造一棵哈夫曼树,求其加权路径长度WPL及各字符的编码。

1、第一步:将字符全部按照频率按升序排序;
2、b和e是最小的两个节点,两者连接到同一个节点上,该节点权值为0.04+0.06=0.1;
3、最小的两个节点权值为0.1和0.17,将两个节点合并到一个节点上,频率为:0.1+0.17=0.27;
4、重复以上步骤,哈弗曼树构造完成。

img


关于WPL:f、a、c在第二层,d在第三层,b和e在第四层,所以
WPS=(0.18+0.23+0.32)2+0.173+(0.04+0.06)*4=2.37。