- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
哈夫曼编码课_程_设_计_报_告
课 程 设 计 报 告
题目: 《哈夫曼编码》
院 系: 计算机科学与应用系
专业年级: 计算机科学与技术
学 号:
学生姓名:
指导老师:
2013年06月25日
目 录
1.设计任务书………………………………………………………………3
1.1题目与要求…………………………………………………………3
1.2涉及知识点…………………………………………………………3
1.3输入输出分析………………………………………………………3
1.4测试数据分析………………………………………………………3
2.概要设计…………………………………………………………………4
2.1结构体类型定义及函数声明………………………………………4
2.2主程序流程…………………………………………………………5
3.详细设计…………………………………………………………………7
3.1数据类型实现………………………………………………………7
3.2程序伪码……………………………………………………………
3.3程序主要流程图……………………………………………………
4.调试分析…………………………………………………………………
4.1问题分析及回顾……………………………………………………
4.2算法时空分析………………………………………………………
4.3设想改进……………………………………………………………
4.4经验和体会…………………………………………………………
5.用户使用说明……………………………………………………………
5.1操作说明及详细步骤………………………………………………
6.测试结果…………………………………………………………………
6.1测试数据及结果……………………………………………………
7.参考文献…………………………………………………………………
8.致谢………………………………………………………………………
设计任务书
1.1题目与要求
题目:哈夫曼编码
要求:
1、I:初始化(Initialization),从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件hfmTree中。2、E:编码(Encoding),利用已建好的哈夫曼树(如不在内存,则从文件hfmTree中读人),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile中。3、D:译码(Decoding),利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中。4、P:输出代码文件(Print),将文件CodeFile以紧凑格式显示在终端上,每行50个代码。同时将此字符形式的编码文件写入文件CodePrin中。5、T:输出哈夫曼树(TreePrinting),将已在内存中的哈夫曼树以直观的方式(树或凹人表形式)显示在终端上,同时将此字符形式的哈夫曼树写入文件TreePrint中。
1.2设计知识点
哈夫曼树的建立哈夫曼编码的生成对编码信息的翻译用下表给出的字符集和频度的实际统计数据建立哈夫曼树,并实现以下报文的编码和译码:“”。字符 权值 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
概要设计
2.1结构体类型及函数声明
1. 哈夫曼树类型(树形结构):
void main(void){ int i; void settree(void); //建立树 void code(void); //对文件编码 void decode(void); // 译码 void disp(void); root=(struct node*)malloc(sizeof(struct node)); puts(*******************哈夫曼编/译码器演示******************************);
建立编码
void settree(void){ int i,j,k; struct node *p1,*p2,*tmp,*p; void go(struct node *); void setcode(struct node *);//建立每一个字符的编码 void printtree(stru
文档评论(0)