哈夫曼编码计算问题以及报文解析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38998213/article/details/83450749

已知某字符串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位。 
这个就是带权路径长度,因为出现的次数就是权重,编码位数就是节点到根节点的层数。

编码所占的位数也就是路径长度。

还会有一下考法;

叶子节点带代表字符D={asd;}

让你写出{asd;das;ds;ad;}的编码:这其实就是用01表示。

或者给你说电文是:“101110101010101000010100101”;让你写出对用的译文是什么?

这也就是发报是滴~滴滴滴。用声音长短代表0,1,01,10等等,发报越复杂说明指定的越多,希望理解。

欢迎留言指正。

猜你喜欢

转载自blog.csdn.net/qq_38998213/article/details/83450749
今日推荐