哈夫曼编译码器课程设计报告(完整版)_第1页
哈夫曼编译码器课程设计报告(完整版)_第2页
哈夫曼编译码器课程设计报告(完整版)_第3页
哈夫曼编译码器课程设计报告(完整版)_第4页
哈夫曼编译码器课程设计报告(完整版)_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、XXX学院本科数据结构课程设计总结报告设计题目 : 实验一、哈夫曼编 / 译码器 学生姓名 : XXX系 别: XXX专 业: XXX班 级: XXX学 号: XXX指导教师 : XXX XXXxxx 学院课程设计任务书题目 一、赫夫曼编译码器专业、班级 xxx学号 xxx 姓名 xxx主要内容、基本要求、主要参考资料等:1. 主要内容利用哈夫曼编码进行信息通信可大大提高信道利用率, 缩短信息传输时间, 降低 传输成本。 要求在发送端通过一个编码系统对待传数据预先编码; 在接收端将传 来的数据进行译码(复原) 。对于双工信道(既可以双向传输信息的信道) ,每端 都需要一个完整的编 / 译码系统

2、。试为这样的信息收发站写一个哈夫曼的编 / 译码 系统。2. 基本要求系统应具有以下功能:( 1) C:编码( Coding)。对文件 tobetrans 中的正文进行编码,然后将结果存 入文件 codefile 中,将以此建好的哈夫曼树存入文件 HuffmanTree 中 (2)D:解码(Decoding )。利用已建好的哈夫曼树将文件 codefile 中的代码进 行译码,结果存入 textfile 中。( 3) P:打印代码文件( Print )。将文件 codefile 以紧凑格式显示在终端上, 每行 50 个代码。同时将此字符形式的编码文件写入文件 codeprint 中。( 4)

3、T:打印哈夫曼树( Tree Printing )。将已在内存中的哈夫曼树以直观的方 式(树或凹入表形式)显示在终端上,同时将此字符形式的哈夫曼树写入文件 treeprint 中。3. 参考资料:数据结构( C 语言版) 严蔚敏、吴伟民编著;数据结构标准教程 胡超、闫宝玉编著 完 成 期 限: 2012 年 6 月 21 日 指导教师签名:课程负责人签名:2012 年 6 月 21 日一、设计题目(任选其一)实验一、哈夫曼编 / 译码器二、实验目的1 巩固和加深对数据结构的理解,提高综合运用本课程所学知识的能力;2 深化对算法课程中基本概念、理论和方法的理解;3 巩固构造赫夫曼树的算法;4 设

4、计试验用程序实验赫夫曼树的构造。三、运行环境(软、硬件环境)Windows xp sp3 ,Visual C+ 英文版四、算法设计的思想 (1)初始化赫夫曼树,输入文件中各字符及其权值,并保存于文件中( 2)编码( Coding)。对文件 tobetrans 中的正文进行编码,然后将结果存入文 件 codefile 中(3)D:解码(Decoding )。利用已建好的哈夫曼树将文件 codefile 中的代码进 行译码,结果存入 textfile 中。( 4) P:打印代码文件( Print )。将文件 codefile 以紧凑格式显示在终端上, 每行 50 个代码。同时将此字符形式的编码文件

5、写入文件 codeprint 中。( 5) T:打印哈夫曼树( Tree Printing )。将已在内存中的哈夫曼树以直观的方 式显示在终端上,同时将此字符形式的哈夫曼树写入文件 treeprint 中。五、流程图六、算法设计分析1. 赫夫曼树节点的数据类型定义为:typedef structvoid HuffmanCoding(HuffmanTree &,char *,int*,int); 建立赫 夫曼树的算法 ,此函数 块调用了 Select ( ) 函数。 void select(HuffmanTree HT,int j,int *x,int *y);从已建好的赫夫曼树中选择p

6、arent 为 0,weight 最小的两个结点。3利用已建好的哈夫曼树从文件中读入,对文件中的正文进行编码,然后将结 果存入文件中。4. coding编码功能:对输入字符进行编码5. Decoding译码功能: 利用已建好的哈夫曼树将文件中的代码进行译码, 结果存入文件 中。6. Print() 打印功能函数:输出哈夫曼树以及对应的编码。七、源代码arent=i;HTy.parent=i;HTi.lchild=x;HTi.rchild=y;HTi.weight=HTx.weight+HTy.weight;arent=0)*x=i;break;for (;i<=j;i+)if (HTi.

7、parent=0)&&(HTi.weight<HT*x.weight)*x=i;HT*x.parent=1;arent=0)*y=i;break;for (;i<=j;i+)if (HTi.parent=0)&&(i!=*x)&&(HTi.weight<HT*y.weight) *y=i;arent;f!=0;c=f,f=HTf.parent) if(HTf.lchild=c) cd-start='0'else cd-start='1'HCi=(char *)malloc(n-start)*siz

8、eof(char); strcpy(HCi,&cdstart);free(cd);if(fp=fopen("","rb")=NULL)printf("Open file error!n");if(fw=fopen("","wb+")=NULL)printf("Open file error!n");char temp;child,m);fscanf(fp,"%c",&temp); h=temp) break; child,m); child

9、,m); child=0&&HTi.rchild=0) h; child,m); child,m); child,m); eight;if(HTj.lchild)Convert_tree(T,s+1,i,HTj.lchild);if(HTj.rchild)Convert_tree(T,s+1,i,HTj.rchild);Tl+k='0'请选择擦乍c.9Cz Docuaent x nncl Sett mxkuxer tt|Debua. exe'3译怙也印B?E.出将之件hf ruuoo lxt成功绵吗井己存人codafilo txt 口 IT引始化祐夫吴稣

10、区師马.亠."丁和代碣文什愈赫天曼粒R Hj.己祜5托订匕皿文仟成功译码 兵己存入CextTile.txt文件I诗迭择探作s *C;DociiBcnt s nnd Sett ing3u5cr-l1Drbiiea. cmk叮即己母好的册夫曼洌:16631210己舟玄手待形式的哈夫矣知写Afftrerprint|树 曼 件 夫 文nr 八117 9卩 A z引编详叮HTy.parent = i;HTi.lchild = x; HTi.rchild = y;HTi.weight = HTx.weight + HTy.weight;arent = 0)*x = i; break ;for (

11、; i <=j ; i+)if ( HTi.parent = 0) && ( HTi.weight< HT* x.weight)*x = i;HT* x.parent = 1;arent = 0)*y = i; break ;for (; i <=j ; i+)if ( HTi.parent = 0) && (i != * x) && ( HTi.weight< HT* y.weight) *y = i;arent; f != 0; c = f, f = HTf.parent)if (HTf.lchild = c)cd-s

12、tart ='0' ;else cd-start ='1' ;HCi = ( char *)malloc(n - start) * sizeof (char ); strcpy(HCi, &cdstart);free(cd);if (fp = fopen( "" , "rb" ) = NULL)printf( "Open file error!n");if (fw = fopen( "" , "wb+" ) = NULL)printf( "Open file error!n");char temp;fscanf(fp, "%c", &temp); h = temp) break ; child, m); child, m); child = 0 && HTi.rchild

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论