数据结构哈夫曼编码实验

数据结构哈夫曼编码实验

ID:14439071

大小:329.00 KB

页数:10页

时间:2018-07-28

数据结构哈夫曼编码实验_第1页
数据结构哈夫曼编码实验_第2页
数据结构哈夫曼编码实验_第3页
数据结构哈夫曼编码实验_第4页
数据结构哈夫曼编码实验_第5页
资源描述:

《数据结构哈夫曼编码实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、线性表及其应用——哈夫曼编码实验四/第一组数据结构课程实验报告姓名:孙越学号:070612020安庆师范学院2012计算机卓越班10/10线性表及其应用——哈夫曼编码实验四/第一组目录一、【实验目的】3二、【问题描述】3三、【基本要求】3四、【实验环境】3五、【测试数据及其结果】3六、【实验源代码】5安庆师范学院2012计算机卓越班10/10线性表及其应用——哈夫曼编码实验四/第一组一、【实验目的】设计一个哈夫曼编/译码器。二、【问题描述】利用赫夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。这要求在发送端通过一个编码系统对待传输数据预先编码,在接收端将传来的

2、数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站编写一个赫夫曼码的编/译码系统。三、【基本要求】(1)I:初始化(Initialization)。从终端读入字符集大小n,以及n个字符和n个权值,建立赫夫曼树,并将它存于文件hfmTree中。(2)E:编码(Encoding)。利用已建好的赫夫曼树(如不在内存,则从文件hfmTree中读入),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile中。(3)D:译码(Decoding)。利用已建好的赫夫曼树将文件CodeFile中的代码进行译码,结果

3、存入文件Textfile中。(4)P:印代码文件(Print)。将文件CodeFile以紧凑格式显示在终端上,每行50个代码。同时将此字符形式的编码文件写入文件CodePrin中。(5)T:印赫夫曼树(Treeprinting)。将已在内存中的赫夫曼树以直观的方式(比如树)显示在终端上,同时将此字符形式的赫夫曼树写入文件TreePrint中。四、【实验环境】WindowsXP,VC++6.0五、【测试数据及其结果】安庆师范学院2012计算机卓越班10/10线性表及其应用——哈夫曼编码实验四/第一组安庆师范学院2012计算机卓越班10/10线性表及其应用——哈夫曼编码实验四/第一组六、

4、【实验源代码】#include#include#include#includestructcode{chara;intw;intparent;intlchild;intrchild;};voidcreation(code*p,intn,intm);//建立哈夫曼树voidcoding(code*p,intn);//编码voidtranslate(char**hc,code*p,intn);//译码安庆师范学院2012计算机卓越班10/10线性表及其应用——哈夫曼编码实验四/第一组voiddisplay(co

5、de*p,intn,intm);//输出函数voidmain(){inti,n,m;code*ht;printf("字符的数量:(请输入一个大于的数字,输入多个数字则按第一个数字运行)");while(scanf("%d",&n)!=1

6、

7、n<0

8、

9、n>9999){printf("重新输入:");fflush(stdin);}m=2*n-1;ht=(code*)malloc((m+1)*sizeof(code));for(i=1;i<=n;i++){printf("输入编码中的字符(请输入一个字母):");fflush(stdin);scanf("%c",&ht[i]

10、.a);while(!(ht[i].a>'a'

11、

12、ht[i].a<'z'

13、

14、ht[i].a>'A'

15、

16、ht[i].a<'Z')){printf("重新输入:");fflush(stdin);scanf("%c",&ht[i].a);}printf("输入字符的权值(请输入一个数字):");while(scanf("%d",&ht[i].w)!=1

17、

18、ht[i].w<0

19、

20、ht[i].w>9999){printf("重新输入:");fflush(stdin);}ht[i].lchild=0;ht[i].rchild=0;ht[i].parent=0;}for(i=n+1;i

21、<=m;i++){ht[i].a='*';ht[i].w=0;ht[i].lchild=0;ht[i].rchild=0;ht[i].parent=0;}安庆师范学院2012计算机卓越班10/10线性表及其应用——哈夫曼编码实验四/第一组creation(ht,n,m);printf("请按回车进入哈夫曼树对应界面");getchar();getchar();system("cls");display(ht,n,m);printf("请按回车进入编码对

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。