哈夫曼编码

来源:互联网 发布:spss mac使用教程 编辑:程序博客网 时间:2024/06/07 01:44

题目:用二进制来编码字符串"abcdabaa",需要能够根据编码,解码回原来的字符串,最少需要多长的二进制字符串?

分析:字符串中共出现了4个字母a,b,c,d。

题目说用二进制来表示

a出现的次数为4次

b出现的次数为2次

c出现的次数为1次

d出现的次数为1次

c和d可以合并得到一个节点,称为cd

cd的权重就和b相同了

cd和b可以合并得到一个节点,称为cdb

cdb的权重就和a相同了

然后cbd可以和a合并得到一个节点,称为根节点

以根节点开始,以0表示左分支,1表示右分支

那么a为1

b为01

d为001

c为000

那么一共需要1×4+2×2+1×3+1×3=14



原创粉丝点击