ImageVerifierCode 换一换
格式:DOC , 页数:3 ,大小:465KB ,
资源ID:729024      下载积分:10 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-729024.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(哈夫曼编码(讲义).doc)为本站会员(创****公)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

哈夫曼编码(讲义).doc

1、哈夫曼编码(讲义)1 哈夫曼编码的主要思想 信息编码的主要目的是:源文件 = 目标文件 编码目标: 目标文件长度尽可能短。两类二进制编码:(1)等长编码:各个字符的编码长度相等。优点:解码简单。缺点:编码长度可能不最短。(2)不等长编码:各个字符的编码长度不等。优点:编码长度尽可能地短。缺点:解码困难、解码结果可能不唯一。例如:传送电文“ABACCDA” 等长编码 A:00 B:01 C:10 D:11 编码结果 00010010101100,长度为 14 位。 解码方以两位为一字段解码。 不等长编码 原则:出现次数较多的字符编码短,次数较少的字符编码长。 A:0 B:00 C:1 D:01

2、编码结果 000011010,长度为 9 位。 解码方无法解码,因为解码的结果不唯一。哈夫曼编码(同时满足代码长度短,且解码唯一) 目标:使电文总长最短。 以字符出现的次数为权,构造一棵哈夫曼树;将树中结点引向其左孩子的分支标“0” ,引向其右孩子的分支标“1” ;每个字符的编码即为从根到每个叶子的路径上得到的 0、1 序列,这样得到的编码称为哈夫曼编码。 哈夫曼解码 从哈夫曼树根开始,从待译码电文中逐位取码。 若编码是“0” ,则向左走;若编码是“1” ,则向右走,一旦到达叶子结点,则译出一个字符; 再重新从根出发,直到电文结束。 2 哈夫曼编码的算法实现步骤: 构造哈夫曼树 根据哈夫曼树求

3、哈夫曼编码 typedef structunsigned int weight;unsigned int parent,lchild,rchild;HTNode,*HuffmanTree; /动态分配数组存储哈夫曼树typedef char *HuffmanCode; /动态分配数组存储哈夫曼编码表void CreateHuffmanTree(HuffmanTree /结点个数(n2=n0-1) HT= new HTNodem+1; /0 号单元未用for(p=HT+1,i=1;p=HT+n, +p,+w) *p=*w,0,0,0;/初始化,叶子结点占 1n for(i=n+1;i=m;+i,

4、+p) *p=0,0,0,0; /n+1m 的位置放置中间结点 for(i=n+1;i=m;+i) /建哈夫曼树 Select(HT,i-1,s1,s2) /在 HT1.i-1选择 parent 为 0,且 weight/最小两个结点,其序号分别为 s1 和 s2。HTs1.parent= i; HTs2.parent=i;HTi.lchild=s1; HTi.rchild=s2;HTi.weight= HTs1.weight + HTs2.weight; void CreateHuffmanCode(HuffmanTree /分配 n 个字符串指针,放每个字符的编码cd=new charn ; /分配求编码的工作空间 for(i=1;i=n;+i) /逐个字符求哈夫曼编码start=n-1; /编码结束符位置for (c=i, f=HTi.parent; f!=0; c=f,f=HTf.parent)/从叶子到根逆向求编码if(HTf.lchild=c) cd-start=“0”;else cd-start=“1”;HCi=new charn-start; /为第 i 个字符编码分配空间strcpy(HCi, /从 cd 复制编码到 HCdelete cd;

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。