数据结构 第七章 哈夫曼树和哈夫曼编码.pptVIP

数据结构 第七章 哈夫曼树和哈夫曼编码.ppt

  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文档。上传文档
查看更多
数据结构 第七章 哈夫曼树和哈夫曼编码

授课教师: 胡 海 Mail: hh_whu@163.com 第七章 树和二叉树 第七节 哈夫曼树和哈夫曼编码 第七节 哈夫曼树和哈夫曼编码 一、Huffman树 二、Huffman编码 最优二叉树 Huffman树 Huffman编码 带权路径长度最短的树 不等长编码 是通信中最经典的压缩编码 基本概念 从A结点到B结点所经过的分支序列叫做从A结点到B结点的路径; 从A结点到B结点所经过的分支个数叫做从A结点到B结点的路径长度; 从二叉树的根结点到二叉树中所有叶结点的路径长度之和称作该二叉树的路径长度。 设二叉树有n个带权值的叶结点,定义从二叉树的根结点到二叉树中所有叶结点的路径长度与相应叶结点权值的乘积之和称作该二叉树的带权路径长度(WPL),即: WPL = 其中,wi为第i个叶结点的权值,li为从根结点到第i个叶结点的路径长度。 Weighted Path Length 1 3 5 7 7 1 3 5 7 1 3 5 5 7 1 3 下图所示二叉树带权路径长度分别为: (a)WPL = 1×2+3×2+5×2+7×2 = 32 (b)WPL = 1×2+3×3+5×3+7×1 = 33 (c)WPL = 7×3+5×3+3×2+1×1 = 43 (d)WPL = 1×3+3×3+5×2+7×1 = 29 具有最小带权路径长度的二叉树称作哈夫曼(Huffman)树(或称最优二叉树)。 图(d)的二叉树是一棵哈夫曼树。 (a) (b) (c) (d) 哈夫曼树的构造 (1) 由给定的 n 个权值{ w1, w2, …, wn }构成n棵二叉树的集合F = { T1, T2, …, Tn } (即森林) ,其中每棵二叉树 Ti 只有一个带权为 wi 的根结点,其左右子树均空。 (2) 在F 中选取两棵根结点权值最小的树 做为左右子树构造一棵新的二叉树,且让新二叉树根结点的权值等于其左右子树的根结点权值之和。 (3) 在F 中删去这两棵树,同时将新得到的二叉树加入 F中。 (4) 重复(2) 和(3) , 直到 F 只含一棵树为止。这棵树便是Huffman树。 1. 构造Huffman树的基本思想: 权值大的结点用短路径,权值小的结点用长路径。 WPL最小的树 2. 构造Huffman树的步骤(即Huffman算法): 例: 哈夫曼树的构造 假设有一组权值 {5,29,7,8,14,23,3,11},下面我们将利用这组权值演示构造哈夫曼树的过程。 第一步: 以这8个权值作为根结点的权值构造具有8棵树的森林 第二步:从中选择两个根的权值最小的树3,5作为左右子树构造一棵新树; 第三步:并将这两棵树从森林中删除,并将新树添加进去 3 5 29 7 8 14 23 11 8 5 29 7 8 14 23 3 11 例: 哈夫曼树的构造 第四步:重复第2,3步过程,直到森林中只有一棵树为止 29 14 23 11 7 8 15 3 5 8 29 14 23 7 8 15 8 3 5 19 11 3 5 29 15 7 8 29 14 8 42 23 19 11 7 8 15 58 29 29 14 3 5 8 42 23 19 11 哈夫曼树 100 7 8 15 58 29 29 14 3 5 8 42 23 19 11 哈夫曼树的应用1——哈夫曼编码 在电文传输中,需要将电文中出现的每个字符进行二进制编码。在设计编码时需要遵守两个原则: (1)发送方传输的二进制编码,到接收方解码后必须具有唯一性,即解码结果与发送方发送的电文完全一样; (2)发送的二进制编码尽可能地短。 两种编码的方式 1. 等长编码: 这种编码方式的特点是每个字符的编码长度相同(编码长度就是每个编码所含的二进制位数)。这种编码的特点是译码简单且具有唯一性,但编码长度并不是最短的。 假设字符集只含有4个字符A,B,C,D,用二进

文档评论(0)

dajuhyy + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档