- 1、本文档共109页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【解答】 0000 0001 001 0100 0101 011 10 11 则Huffman编码为 c1 c2 c3 c4 c5 c6 c7 c8 0100 10 0000 0101 001 011 11 0001 电文总码数为 4 * 5 + 2 * 25 + 4 * 3 + 4 * 6 + 3 * 10 + 3 * 11 + 2 * 36 + 4 * 4 = 257 Huffman树应用-最佳判定树 分数段查询 等级 分数段 比例 A B C D E 0~59 60~69 70~79 80~89 90~100 0.05 0.15 0.40 0.30 0.10 通常的简单做法 a60 a90 a80 a70 E Y N D Y N C Y N B Y N A E A D E C 计算一下WPL? 利用Huffman算法 70?a80 a60 C Y N B Y N D Y N E Y N A 80?a90 60?a70 a80 a70 a60 a90 E Y N D Y N C Y N B Y N A 再计算一下WPL? Huffman编码:数据通信用的二进制编码 思想:根据字符出现频率编码,使电文总长最短 编码:根据字符出现频率构造Huffman树,然后将树中结点引向其左孩子的分支标“0”,引向其右孩子的分支标“1”;每个字符的编码即为从根到每个叶子的路径上得到的0、1序列。 例:要传输的字符集 D={C,A,S,T, ; },字符出现频率 w={2,4,2,3,3} C S 3 3 6 4 2 2 4 8 14 T ; A 0 0 1 1 0 1 1 0 T : 00 ; : 01 A : 10 C : 110 S : 111 译码:从Huffman树根开始,从待译码电文中逐位取码。若编码是“0”,则向左走;若编码是“1”,则向右走,一旦到达叶子结点,则译出一个字符;再重新从根出发,直到电文结束 C S 3 3 6 4 2 2 4 8 14 T ; A 0 0 1 1 0 1 1 0 T : 00 ; : 01 A : 10 C : 110 S : 111 例:电文是{CAS;CAT;SAT;AT} 其编码 “11010111011101000011111000011000” 电文为“1101000” 译文只能是“CAT” Haffman码:前缀编码,即任何一个字符的编码都不是另一个字符的编码的前缀 Huffman树的构造算法 2阶正则树。(k阶) 4个节点的Huffman树的最大、最小高度? #define N 50 #define MAX 100 typedef struct int weight; int parent,lchild,rchild; }HTNode,HuffmanTree; void huffman(int n,int w[],HuffmanTree t[]){ int i,j,k,s1,s2,m1,m2; for(i=1;i2*n;i++){ t[i].parent=t[i].lchild=t[i].rchild=0; if (i=n) t[i].weight=w[i]; else t[i].weight=0; } for(i=1;in;i++){ m1=m2=MAX; s1=s2=0; for(j=1;j(n+i);j++) if((t[j].weightm1)(t[j].parent==0)) {m2=m1;s2=s1; m1=t[j].weight;s1=j;} else if((t[j].weightm2)(t[j].parent==0)) {m2=t[j].weight; s2=j;} k=n+i; t[s1].parent=t[s2].parent=k; t[k].weight=m1+m2; t[k].lchiild=s1; t[k].rchild=s2; } } 6.6树的计数及其他 如果前序序列固定不变,给出不同的中序序列,可得到不同的二叉树。 问题是有 n 个数据值,可能构造多少种不同的二叉树?我们可以固定前序排列,选择所有可能的中序排列。 例如,有 3 个数据 { 1, 2, 3 },可得 5 种不同的二叉树。它们的前序排列均为 123,中序序列可能是 123,132,213,231,321。 有0个, 1个, 2个, 3个
您可能关注的文档
- 第13章药物的构效关系答辩.ppt
- 2003结业证书模板探析.doc
- 6.1、信托-新员工入职培训-投资理财概念2015.2.4解答.ppt
- 第14次课--第五章整数规划答辩.ppt
- 2004~2012一级建造师法规真题及探析.doc
- 2004-2015年工程计价历年真题章节版第三章探析.doc
- 第一章第一节_混合物的分离提纯(第二课时)探析.ppt
- 2004年04月大比武(无线WCDMA网规)-合作方(带)探析.doc
- 第14讲电与磁信息的传递答辩.ppt
- 第一章第一节《混合物的分离与提纯(一)》探析.ppt
- 2025年企业社工员工关怀项目可行性研究报告.docx
- 2025年广东省深圳市南山区教科院初三二模英语试题及答案.docx
- 预算编制与企业战略关联.pptx
- 2025口服抗衰消费者趋势洞察报告-最终版-库润数据&功能食品圈.pptx
- 七年级上册数学同步练习(人教版2024)612点、线、面、体(三大类型提分练)(试卷+解析).docx
- 2025年天津市生态农业示范园有机果蔬立体栽培模式可行性研究报告.docx
- 草根自媒体创业方案咨询.docx
- 【高二期末7.07】广东省汕头市2024-2025学年高二下学期教学质量监测数学试题答案.pdf
- 七年级上册数学同步练习(人教版2024)621直线、射线、线段(分层培优提分练40题)(试卷+解析).docx
- 测绘咨询服务方案.docx
文档评论(0)