求解,关于数据结构的哈夫曼编码的问题

在此题中,方案1的WPL是怎么求得的?那里的2、4、5是怎么来的?而方案2的WPL又是怎么求得那里3(……)=的3是怎么来的?下面在写的逻辑结构哈夫曼编码的0010、10... 在此题中,方案1的WPL是怎么求得的?那里的2、4、5是怎么来的?而方案2的WPL又是怎么求得 那里 3(……)=的3是怎么来的?下面在写的逻辑结构哈夫曼编码的0010、10、00000……是怎么求来的?尤其下面的图,圆圈里的数字是怎么求得的?而线上的0、1又怎么得来??? 展开
 我来答
袁世平1
2016-06-23 · TA获得超过536个赞
知道小有建树答主
回答量:459
采纳率:0%
帮助的人:393万
展开全部
方案一应该指的就是下面那个图了.
下面那个图是一棵二进制的哈夫曼树,其中因为是二进制编码,所以使用的是0\1的边.
那么对于每一个叶子节点来说,从根节点到叶子节点走过的边就是这个数字的编码.

那么举一个例子,比如频数=2的也就是最左端的那个叶节点,根到它走了5个0,它的编号就是"00000";在比如说10这个叶子节点,根节点到他走了"0011",它的编号也就是0011.
那么根据上面几个例子,那么叶子到根的距离[叶子的深度],也就是边的条数,就是这个叶子所代表的编码长度.
比如19\32\21到根的距离都是2,7\6\10到根的距离都是4,2\3到根的距离都是5.
也就是上面那个WPL的系数的意思.
表示单个编码长度*使用频率=总的编码长度.

而方案二表示的传统编码,就是上面表格中的那个等长编码:"000""001"...
它们的长度都是3,所以就是*3

然后为什么哈夫曼编码正确而且最优呢?

哈夫曼编码由于构成了一棵树,而且是叶子节点作为编码的代表,所以没有任何一个编码是另一个编码的前缀,所以哈夫曼编码是一个具有正确性的编码.
然后哈夫曼树的构造是根据贪心的思想,每次选出两个最小的点合成一个新的点所构成的.就满足了最优性.
构造的过程应该书上会有写.我就不再赘述了.
秒懂百科精选
高粉答主

2020-12-30 · 每个回答都超有意思的
知道答主
回答量:60.8万
采纳率:14%
帮助的人:3.1亿
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式