当前位置:首页 > TAG信息列表 > 哈夫曼树唯一吗为什么怎样求哈夫曼树的平均编码长?怎样求哈夫曼树?

哈夫曼树唯一吗为什么怎样求哈夫曼树的平均编码长?怎样求哈夫曼树?

哈夫曼树唯一吗 为什么 怎样求哈夫曼树的平均编码长?怎样求哈夫曼树?

怎样求哈夫曼树的平均编码长?怎样求哈夫曼树?

假设用于通信2113的消息由字符集{a、b、c、d、e、f、g、h}中的5261个字母组成,消息中出现这八个字母的概率为4102,即{0.07、0.19、0.02、0.06、0.32、0.03、0.21、0.10}。哈夫曼码1653可以从上面的编码表中得到:a:1001b:01c:10111d:1010e:11f:10110g:00h:1000,三位二进制等长编码的平均长度为3,哈夫曼树编码的平均长度为4*0.072*0.195*0.024*0.062*0.325*0.032*0.214*0.10=2.612.61/3=0.87%,平均码长为等长码的87%,平均压缩比为13%。由于定长码已经使用了相同的位数,这个条件保证了任何字符的码都不会成为其他码的前缀,所以这种情况只发生在变长码中,我们必须用一个条件来制作常规长度码。这个条件是,如果我们想成为压缩码,可变长度的代码必须是前缀码。所谓前缀码,是指任何一个字符的编码不能是另一个字符编码的前缀。

怎样求哈夫曼树的平均编码长度?

创建一个结构数组,每个成员都有一个指向结构的指针,左,右,权重值。随机初始化值。将每个节点的左侧和右侧设置为null。从阵列中随机选取三个节点,让其中一个节点的左右两侧分别指向另外两个节点。等等。(节点是否被使用,要自己判断,顶点也要自己记住。数组应该是奇数(有一个结束节点,需要2n-1个节点)。用指针查找路径的长度,从节点开始,直到指针为空。

哈夫曼树唯一吗为什么哈夫曼树是满二叉树吗哈夫曼树等长编码怎么求


江宁号 一起互联

  • 关注微信关注微信

猜你喜欢

微信公众号