(第十一讲).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* (第十一讲) 绍兴文理学院 计算机系计算机应用教研室 AAA BBBB 电话区号是 怎样编制的?最短编码是 怎样实现的? AAA BBBB 第6章 树和二叉树(5) 一、教学目的:明确最优二叉树(哈夫曼树)的概念,掌握构造赫夫曼树和赫夫曼编码方法,掌握构造赫夫曼树和赫夫曼编码的算法。基本掌握对赫夫曼编码的译码的方法,算法设计训练。 二、教学重点:最优二叉树(哈夫曼树)的概念,构造哈夫曼树和哈夫曼编码方法,构造哈夫曼树和赫夫曼编码的算法。赫夫曼编码的译码的方法,算法设计训练。 三、教学难点:构造赫夫曼树和赫夫曼编码的算法。算法设计训练。 四、教学过程: AAA BBBB §5.5 赫夫曼树及其应用 §5.5.1 赫夫曼树的基本概念 1、路径及路径长度 A B D E C F H I K G J L n个结点的二叉树的路径长度不小于下述数列前n项的和,即 (1) 路径:从树中一个结点到另一个结点之间的分支构成这两个结点之间的路径。 (2) 路径长度:路径上的分支数目。 (3) 树的路径长度:从树根到每一结点的路径长度之和。 在结点数相同的条件下,完全二叉树是路径最短的二叉树。 其路径长度最小者为 TKS * * AAA BBBB 2、树的带权路径长度 (1) 权:赋予某个实体的一个量,是对实体的某个或某些属性的数值化描述。在数据结构中,实体有结点(元素)和边(关系)两大类,所以对应有结点权和边权。 带权结点:含权值的结点。根据需要可以给树的结点赋权值。 (2) 结点的带权路径长度:从该结点到树根之间路径长度与结点上权的乘积。 (3) 树的带权路径长度:树中所有叶子结点的带权路径长度之和。记为 3、赫夫曼树(最优二叉树) (1) 概念:设有n个权值量{W1, W2,…, Wn},构造一棵有n个叶子结点的二叉树,每个叶子的结点带权为Wi,则其中WPL最小的二叉树称做最优二叉树(赫夫曼树)。 (2) 相同结点及权值构造不同的二叉树得到不同WPL的示例 TKS * * AAA BBBB 3 5 8 2 D B C A (b) D A B C 2 3 5 8 (c) A B D C 2 3 5 8 (a) 例1 一个软件小组四个人,由于业务和工作关系,找组长A频率是8,找副组长B的频率是5,找负责数据库程序员C的频率是3,找负责网络程序员D的频率是2,以这些频率为权的带权叶子结点所构成的三棵二叉树如下: 其带权路径长度分别为: (a) WPL=8×2+5×2+3×2+2×2=36 (b)??WPL=8×3+5×3+3×2+2×1=47 (c)?WPL=8×1+5×2+3×3+2×3=33 可以验证(c)即为赫夫曼树。 若用线性表来组织查找的话,其最小值为35,体现了用构造赫夫曼树来解决这类问题的优越性。 TKS * * AAA BBBB 0.10 0.30 0.40 0.15 0.05 比例数 90—100 80—89 70—79 60—69 0—59 分 数 例2 判定问题 设有10000个百分制分数要转换,学生的5个等级成绩分布如下: 例如下面的程序: if(a60) p=“bad”; else if(a70) p=“pass”; else if(a80) p=“general”; else if(a90) p=“good”; else p=“excellent”; a ? 80 a ? 90 不及格 良好 中等 及格 优秀 a ? 60 a ? 70 按图的判定过程: 转换一个分数所需的比较次数=从根到对应结点的路径长度 转换10000个分数所需的总比较次数= 10000 ?(0.05?1+0.15?2+0.4?3+0.3?4+0.1? 4)=31500 TKS * * AAA BBBB 可有不同的判定过程,最佳判定过程为: a80 a70 a90 a60 general bad pass good excellent Y Y Y Y N N N N 总共仅需进行 10000 ?(0.05?3+0.15?3+0.4?2+0.3?2+0.1?2)=22000 次比较 ▲ 此二叉树可以认为是满足一定条件的赫夫曼树。是为了减少比较而使得权值相对较小的结点不在相对层次较低的位置上。 TKS * * AAA BBBB §5.5.2 赫夫曼树的构造算法 1、构造思想 把所要构造的带权结点都构造在赫夫曼树的叶子位子,权值较大的结点构造在离根结点较近的叶子位子,权值较小的结点构造在离根结点较远的叶子位子,以使得带权路径的长度之和最小。 2、构造方法和过程 (1) 根据给定的n个权值{W1, W2

文档评论(0)

沃爱茜 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档