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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(哈夫曼编码译码器数据结构C语言Word格式文档下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

哈夫曼编码译码器数据结构C语言Word格式文档下载.docx

1、ABA等因此若要设计长短不等的编码则必须是任一字符的编码都不是另一个字符的编码的前缀这种编码称作前缀编码然而如何进行前缀编码就是利用哈夫曼树来做也就有了现在的哈夫曼编码和译码二、概要设计利用哈夫曼树编/译码(一)、建立哈夫曼树(二)、对哈夫曼树进行编码(三)、输出对应字符的编码(四)、译码过程主要代码实现:struct code /结构体的定义 char a; int w; int parent; int lchild; int rchild;void creation(code *pint nint m); /建立哈夫曼树void coding(code *pint n); /编码void

2、display(code *p /输出函数void translate(char *hccode *p /译码三、 详细设计(一) 、建立哈夫曼树(二) 、对哈夫曼树进行编码for(c=if=pi.parent;f!=0;c=ff=pf.parent) if(pf.lchild=c) /左孩子编码为0 cd-start=; else /右孩子编码为1(三) 、输出对应字符的码字符编码a110b111c10d0(四) 、译码过程if(strcmp(ahci)=0) /比较两个字符串是否相等相等则输出0 for(c=2*n-1j=0;aj!=0j+) /从根出发按字符或确定找左孩子或右孩子 if(

3、aj=) /左孩子 c=pc.lchild; else c=pc.rchild; /右孩子四、 调试分析(一)、数字的输入判断(二)、字母的输入判断(三)、程序是否继续进行的 判断五、 用户手册(一) 、首先根据提示输入初始化数据提示输入一个数字请输入一个数a0a9999;提示输入一个字母则请输入一个字母(az)或者(AZ)中的一个字符;请勿在输入一个数字后再输入一个字符或者在输入一个字符后再输入一个数字(二) 在某一界面结束后会有请按回车继续下面操作提示请按提示进行操作如输入其他数字则无效知道输入回车符界面才会跳转(三) 对界面的操作可以自行选择在询问是否译码的时候请按要求进行选择在一次译码

4、结束后会询问是否继续译码如需要则输入y或者Y输入其他字符则退出程序六、测试结果(一)、初始化(二)、建立哈夫曼树(三)、哈夫曼编码(四)、哈夫曼译码(五)、错误判定附录:源代码:#includestring.hstdlib.hmalloc.h/译码/主函数void main() int inm; code *ht; printf(字符的数量:n(请输入一个大于0的数字输入多个数字则按第一个数字运行)n); while(scanf(%d&n)!=1|n9999) printf(重新输入:n fflush(stdin); m=2*n-1; /哈夫曼树中没有度为1的结点故含有m=2n-1个结点 ht

5、=(code*)malloc(m+1)*sizeof(code);/动态申请内存 for(i=1;ia|hti.aAZ) printf( fflush(stdin); scanf(/清空输入缓冲区往往是确保不影响后面数据的读取 输入字符的权值(请输入一个数字): while(scanf(hti.w)!=1|hti.w /清空输入缓冲区往往是确保不影响后面数据的读取 hti.lchild=0; hti.rchild=0; hti.parent=0; for(i=n+1;=m;i+) /对n+12n-1的数进行初始化 hti.a=* hti.w=0; creation(htm);请按回车进入哈夫曼

6、树对应界面n getchar(); system(cls display(ht请按回车进入编码对应界面n coding(htn);void creation(code *htint m)jm1m2t1t2;i+) j=1; /找到第一个最小值(双亲不为0) while(htj.parent!=0) /找到表中第一个没有双亲的结点 j+; t1=htj.w; m1=j; for(j=m1+1;jj+) if(htj.parent=0&htj.w!=0)/条件(htj.w!=0)是因为n2n-1的权值初始值为0 if(htj.wn) 编码不存在对应的字符!是否继续输入?是(输入y或者Y)否(其他)

7、n while(ch= int i;n序号 码值 权值 双亲 左孩子 右孩子n%d %c %d %d %d %dnipi.wpi.parentpi.lchildpi.rchild);设计体会通过这个课程设计让我对数据结构这门课程有了更深一步的了解对以后的深造奠定了基础本次课程设计的课题是:哈夫曼编码以及译码的实现本程序的特色是:结构清晰内容全面输入的错误提醒在输入的错误的提醒方面做了很大的改进不过在这方面仍存在些许的不足就是在输入一个字母的时候如果输入的数据是ab不会提示错误只会按第一个有效在初始化的时候输入a3这种数据则不会提示错误而是执行了下一条scanf语句输入的数字学习是一个无止境的过境我们要善于使用资源书籍网络等等努力地提升自己为今后的发展做更大的努力?

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1