版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Huffman树及其应用、最优二叉树(霍夫曼树)预备知识:若干术语路径:由一结点到另一结点间的分支所构成路径长度:路径上的分支数目a→e的路径长度=2树的路径长度:从树根到每一结点的路径长度之和。树长度0带权路径长度:结点到根的路径长度与结点上权的乘积树的带权路径长度:树中所有叶子结点的带权路径长度之和霍夫曼树:带权路径长度最小的树。Huffman树及其应用1Huffman树简介:WeightedPathLength树的带权路径长度如何计算?mPL=∑啊哈夫曼树则是:mL最小的树。经典之例:Huffman4d)75WPL=36WPL=46WPL=35Huffman树简介:2构造霍夫曼树的基本思想:权值大的结点用短路径,权值小的结点用长路径。构造Huffman树的步骤(即Huffman算法)(1)由给定的n个权值{wpm1v23…,wn1},构造具有n棵扩充二叉树的森林F={TT1,T23…,Tn1},其中每一棵扩充二叉树T只有一个带有权值v的根结点,其左、右子树均为空。(2)重复以下步骤,直到F中仅剩下一棵树为止:①在F中选取两棵根结点的权值最小的扩充二叉树,做为左、右子树构造一棵新的二叉树。置新的二叉树的根结点的权值为其左、右子树上根结点的权值之和②在F中删去这两棵二叉树。③把新的二叉树加入F。先举例!构造霍夫曼树的基本思想:3例1:设有4个字符d,i,a,n,出现的频度分别为7,5,2,4,怎样编码才能使它们组成的报文在网络中传得最快?法1:等长编码。例如用二进制编码来实现。取d=00,i=01,a=10,n=11法2:不等长编码,例如用哈夫曼编码来实现。取d=0;i=10,a=110,n=111最快的编码是哪个?是非等长的Huffman码!怎样实现Huffman编码?先要构造Huffman树!例1:设有4个字符d,i,a,n,出现的频度分别为7,5,24构造Huffman树的步骤:操作要点1:对权值的合并、删除与替换在权值集合{7,5,2,4}中,总是合并当前值最小的两个权F:{7}5}{2}{4}F:(7}{5}(6}F:{7}{11F:{18}(a)初始(b)合并{2}{4(c)合并{5}{6}(d)合并(7}11注:方框表示外结点(叶子,字符对应的权值),圆框表示内结点(合并后的权值)。构造Huffman树的步骤:5操作要点2:按左0右1对Huffman树的所有分支编号!将Huffman树与Huffman编码挂钩Huffman编码结果:d=0,i=10,a=110,n=11lWPL=1bit×7+2bit×5+3bit(2+4)=35特点:每一码都不是另一码的前缀,绝不会错译!称为前缀码操作要点2:按左0右1对Huffman树的所有分支编号!6霍夫曼编码的基本思想是:概率大的字符用短码,概率小的用「长码。由于霍夫曼树的班最小,说明编码所需要的比特数最少。这种编码已广泛应用于网络通信中。例2:假设用于通信的电文仅由8个字母{a,b,c,d,e,f,g,h}构成,它们在电文中出现的概率分别为{0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10},试为这8个字母设计哈夫曼编码。如果用0~7的二进制编码方案又如何?解:先将概率放大100倍,以方便构造哈夫曼树。权值集合w={7,19,2,6,32,3,21,10}按哈夫曼树构造规则(合并、删除、替换),可得到哈夫曼树。霍夫曼编码的基本思想是:概率大的字符用短码,概率小的用7为清晰起见,重新排序为W=义,6,7,10,19,21,32}W1=8,6,7,10,19,21,32}w2=x1,11,19,21,32}W3={×,ⅸ,19,21,32}W4={,,28,32}w5={28,82,40}W6={40,0o}W7={100哈夫曼树为清晰起见,重新排序为8对应的哈夫曼编码(左0右1):符编码频率符「编码」频率1100007a000|007000190010.1911100.02c010002d11100.06d0110.06100.32100|0.32111110031010.03g011021g11002111010101110.10Huffman码的wPL=2(0.19+0.32+0.21)+4(0.07+0.06+0.10)+5(0.02+0.031.44+0.92+0.25=2.61二进制码WPL=3(0.19+0.32+0.21+007+0.06+0.10+002+003)=3对应的哈夫曼编码(左0右1):9另一种结果表示:1.000400.6000.280.320.210.19○0.170.110.050.100.070.06①哈夫曼编码树0.030.02另一种结果表示:10哈夫曼编码讲解课件11哈夫曼编码讲解课件12哈夫曼编码讲解课件13哈夫曼编码讲解课件14哈夫曼编码讲解课件15哈夫曼编码讲解课件16哈夫曼编码讲解课件17哈夫曼编码讲解课件18哈夫曼编码讲解课件19哈夫曼编码讲解课件20哈夫曼编码讲解课件21哈夫曼编码讲解课件22哈夫曼编码讲解课件23哈夫曼编码讲解课件24哈夫曼编码讲解课件25哈夫曼编码讲解课件26哈夫曼编码讲解课件27哈夫曼编码讲解课件28哈夫曼编码讲解课件29哈夫曼编码讲解课件30哈夫曼编码讲解课件31哈夫曼编码讲解课件32哈夫曼编码讲解课件33哈夫曼编码讲解课件34哈夫曼编码讲解课件35哈夫曼编码讲解课件36哈夫曼编码讲解课件37哈夫曼编码讲解课件38哈夫曼编码讲解课件39哈夫曼编码讲解课件40哈夫曼编码讲解课件41哈夫曼编码讲解课件42哈夫曼编码讲解课件43哈夫曼编码讲解课件44哈夫曼编码讲解课件45哈夫曼编码讲解课件46哈夫曼编码讲解课件47哈夫曼编码讲解课件48哈夫曼编码讲解课件49哈夫曼编码讲解课件50哈夫曼编码讲解课件51哈夫曼编码讲解课件52哈夫曼编码讲解课件53哈夫曼编码讲解课件54哈夫曼编码讲解课件55哈夫曼编码讲解课件56Huffman树及其应用、最优二叉树(霍夫曼树)预备知识:若干术语路径:由一结点到另一结点间的分支所构成路径长度:路径上的分支数目a→e的路径长度=2树的路径长度:从树根到每一结点的路径长度之和。树长度0带权路径长度:结点到根的路径长度与结点上权的乘积树的带权路径长度:树中所有叶子结点的带权路径长度之和霍夫曼树:带权路径长度最小的树。Huffman树及其应用57Huffman树简介:WeightedPathLength树的带权路径长度如何计算?mPL=∑啊哈夫曼树则是:mL最小的树。经典之例:Huffman4d)75WPL=36WPL=46WPL=35Huffman树简介:58构造霍夫曼树的基本思想:权值大的结点用短路径,权值小的结点用长路径。构造Huffman树的步骤(即Huffman算法)(1)由给定的n个权值{wpm1v23…,wn1},构造具有n棵扩充二叉树的森林F={TT1,T23…,Tn1},其中每一棵扩充二叉树T只有一个带有权值v的根结点,其左、右子树均为空。(2)重复以下步骤,直到F中仅剩下一棵树为止:①在F中选取两棵根结点的权值最小的扩充二叉树,做为左、右子树构造一棵新的二叉树。置新的二叉树的根结点的权值为其左、右子树上根结点的权值之和②在F中删去这两棵二叉树。③把新的二叉树加入F。先举例!构造霍夫曼树的基本思想:59例1:设有4个字符d,i,a,n,出现的频度分别为7,5,2,4,怎样编码才能使它们组成的报文在网络中传得最快?法1:等长编码。例如用二进制编码来实现。取d=00,i=01,a=10,n=11法2:不等长编码,例如用哈夫曼编码来实现。取d=0;i=10,a=110,n=111最快的编码是哪个?是非等长的Huffman码!怎样实现Huffman编码?先要构造Huffman树!例1:设有4个字符d,i,a,n,出现的频度分别为7,5,260构造Huffman树的步骤:操作要点1:对权值的合并、删除与替换在权值集合{7,5,2,4}中,总是合并当前值最小的两个权F:{7}5}{2}{4}F:(7}{5}(6}F:{7}{11F:{18}(a)初始(b)合并{2}{4(c)合并{5}{6}(d)合并(7}11注:方框表示外结点(叶子,字符对应的权值),圆框表示内结点(合并后的权值)。构造Huffman树的步骤:61操作要点2:按左0右1对Huffman树的所有分支编号!将Huffman树与Huffman编码挂钩Huffman编码结果:d=0,i=10,a=110,n=11lWPL=1bit×7+2bit×5+3bit(2+4)=35特点:每一码都不是另一码的前缀,绝不会错译!称为前缀码操作要点2:按左0右1对Huffman树的所有分支编号!62霍夫曼编码的基本思想是:概率大的字符用短码,概率小的用「长码。由于霍夫曼树的班最小,说明编码所需要的比特数最少。这种编码已广泛应用于网络通信中。例2:假设用于通信的电文仅由8个字母{a,b,c,d,e,f,g,h}构成,它们在电文中出现的概率分别为{0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10},试为这8个字母设计哈夫曼编码。如果用0~7的二进制编码方案又如何?解:先将概率放大100倍,以方便构造哈夫曼树。权值集合w={7,19,2,6,32,3,21,10}按哈夫曼树构造规则(合并、删除、替换),可得到哈夫曼树。霍夫曼编码的基本思想是:概率大的字符用短码,概率小的用63为清晰起见,重新排序为W=义,6,7,10,19,21,32}W1=8,6,7,10,19,21,32}w2=x1,11,19,21,32}W3={×,ⅸ,19,21,32}W4={,,28,32}w5={28,82,40}W6={40,0o}W7={100哈夫曼树为清晰起见,重新排序为64对应的哈夫曼编码(左0右1):符编码频率符「编码」频率1100007a000|007000190010.1911100.02c010002d11100.06d0110.06100.32100|0.32111110031010.03g011021g11002111010101110.10Huffman码的wPL=2(0.19+0.32+0.21)+4(0.07+0.06+0.10)+5(0.02+0.031.44+0.92+0.25=2.61二进制码WPL=3(0.19+0.32+0.21+007+0.06+0.10+002+003)=3对应的哈夫曼编码(左0右1):65另一种结果表示:1.000400.6000.280.320.210.19○0.170.110.050.100.070.06①哈夫曼编码树0.030.02另一种结果表示:66哈夫曼编码讲解课件67哈夫曼编码讲解课件68哈夫曼编码讲解课件69哈夫曼编码讲解课件70哈夫曼编码讲解课件71哈夫曼编码讲解课件72哈夫曼编码讲解课件73哈夫曼编码讲解课件74哈夫曼编码讲解课件75哈夫曼编码讲解课件76哈夫曼编码讲解课件77哈夫曼编码讲解课件78哈夫曼编码讲解课件79哈夫曼编码讲解课件80哈夫曼编码讲解课件81哈夫曼编码讲解课件82哈夫曼编码讲解课件83哈夫曼编码讲解课件84哈夫曼编码讲解课件85哈夫曼编码讲解课件86哈夫曼编码讲解课件87哈夫曼编码讲解课件88哈夫曼编码讲解课件89哈夫曼编码讲解课件90哈夫曼编码讲解课件91哈夫曼编码讲解课件92哈
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025河南平煤神马平绿置业有限责任公司招聘3人参考笔试题库附答案解析
- 2025四川成都市青羊区新华少城社区卫生服务中心招聘3人参考笔试题库附答案解析
- 2025恒丰银行南京分行社会招聘29人参考笔试题库附答案解析
- 2025广西北海市中日友谊中学秋季学期教师招聘1人备考考试试题及答案解析
- 2025年哈尔滨市南岗区残疾人联合会补充招聘残疾人专职委员2人模拟笔试试题及答案解析
- 2025江苏苏州大学科研助理岗位招聘10人备考笔试试题及答案解析
- 网咖投资合同范本
- 网格员用工协议书
- 职场绿化合同协议
- 联保劳动合同范本
- 2025江西省交院路桥工程有限公司招聘1人笔试参考题库附带答案详解(10套)
- 2025年第三师图木舒克市公安局招聘警务辅助人员考试笔试试卷【附答案】
- DBJ04-T362-2025 保模一体板复合墙体保温系统应用技术标准
- 《中小学跨学科课程开发规范》
- 消防荣誉观教育
- 澳门回归主题班会课件
- 股权设计全套方案
- 注塑厂生产安全培训课件
- 根尖囊肿护理课件
- 民用建筑变电站两阶段选址方法
- 专题01音标-五年级英语上册寒假专项提升(人教pep版)
评论
0/150
提交评论