实用数据结构与算法——哈夫曼树

1. 什么是哈夫曼树?(这个我觉得看不看都无所谓)

答:(1)文字解释

经过以下步骤得到的树就是哈夫曼树。

①统计原始数据中的各种符号出现的频率(权重),并将各符号视为单独的结点;
②将各结点按照频率(权重)值的大小排成一个有序序列;
3从队列中选择频率(权重)值最小的两个结点,作为新结点的左、右孩子(左孩子结点的权值小于右孩子结点);
④将左、右孩子结点的权值相加,作为新结点的权值;
⑤使用新结点替代其左、右孩子结点加入有序序列,参与下一轮比较;
⑥重复上述2~⑤步,直到队列全部合并,得到原始编码数据的哈夫曼树;
⑦在每次合并符号结点时,将合并的左、右符号结点分别赋为“0”和“1”,得到哈夫曼树。

(2)图片解释

0cf97d9e49884c72aa2f71118509c7cd.jpg

 2. 哈夫曼树的带权路径长度WPL怎么求?

(1)文字解释

哈夫曼树中所有结点的带权路径长度之和。

每个结点的带权路径长度的计算公式:权值(题目会给)× 该结点的路径长度(根结点到该结点的线段数量)

(2)图片解释(以图中例题为例)

c9070336d9ad421cada7d38eaba81be8.jpg

 3. 哈夫曼编码怎么求?

(1)文字解释

哈夫曼编码就是由0和1组成的,所有结点的哈夫曼编码就是哈夫曼编码。

左0右1原则(也可以左1右0),根结点到左结点的线段上的数字为0,根结点到右结点的线段上的数字为1;凡是结点到左孩子的线段上的数字均为0,结点到右孩子的线段上的数字均为1;按照从根结点到该结点的方向读数(就是读线段上的0或1)就是该结点的哈夫曼编码。

(2)图片解释

b820121bdde64b879691a08740a94ca1.jpg

 没了吧没了吧,我们老师一节课讲完了,上课走神就知识点斜街不上,希望大家上课认真点啊,不然课堂测很惨的。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大大 大西瓜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值