数据结构 实验报告

数据结构 实验报告

ID:11410327

大小:184.50 KB

页数:26页

时间:2018-07-11

数据结构 实验报告_第1页
数据结构 实验报告_第2页
数据结构 实验报告_第3页
数据结构 实验报告_第4页
数据结构 实验报告_第5页
资源描述:

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

1、课程名称数据结构成绩评定实验项目名称哈夫曼编/译器指导教师实验项目编号2008060025实验项目类型实验地点学生姓名学号学院信息学院系数学系专业数学与应用数学/信息与计算科学实验时间2008年12月15日上午~12月26日下午温度℃湿度一:需求分析:程序根据用户输入的字符及它们的权值,由叶结点开始构造一棵哈夫曼树,继而由根节点至叶节点得出各字符的哈夫曼编码。哈夫曼树又称为最优树,是一类带权路径最短的树,有着广泛的应用。以哈夫曼编码的应用为例。通过哈夫曼编码可以缩短电文编码的位数,又由于构造哈夫曼树过程的特点,缩短后的编码不会产生歧义。利用哈夫

2、曼树进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。因而,用哈夫曼进行电文编/译码在实际生活中有着非常重要的应用。1.输入值和输入形式的范围。在本演示程序中,输入字符范围限定为26个英文字母和10个阿拉伯数字。首先,需要用户输入所需编码字符个数n,接着输入这n本科实验报告专用纸个不同的字符,以“#为输入结束标志”,最后输入这n的字符的权值,即出现的次数。2.输出的形式:演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,由用户根据提示输入相应的数据,程序根据用户输入的数据,构造一棵哈夫曼树,并在屏幕上输出

3、各个字符的哈夫曼编码,以及电文的译码。3程序所能达到的功能。初始化数据。(为各字符赋初值data,以及它们的权值weight)。根据用户输入的字符及它们的权值(通过构建一棵哈夫曼树)获取各字符的哈夫曼编码,显示字符出现的次数。将一串用户输入的字符翻译成哈夫曼编码。按中序遍历和先序遍历输出一棵哈夫曼树的编码。退出编译程序。二.概要设计:1.main函数:main函数是程序设计中的核心,统领整个project。此project中main函数主要包括:(1).初始化数据。{printf("欢迎使用");printf("请输入不同字符的个数:"

4、);本科实验报告专用纸……printf("请输入各个不同字符,不包括回车和空格,以#号结束:");……printf("请输入各个不同字符出现的次数:");//赋权值……}(2).创建哈夫曼树。CreateHT(ht,n);(3).创建哈夫曼编码。CreateHCode(ht,hcd,n);(4).显示菜单。showmenu();getchar();接收用户的输入的选择后使用switch函数调用相关函数实现相应的功能。2.菜单模式。进行完数据的初始化,字符的编码等工作之后,此时,showmenu函数起主要作用,用户的选择所需的功能,s

5、witch函数根据用户的选择,调用想干函数实现所要求的功能。本科实验报告专用纸三.详细设计:1.main函数的设计——在main函数中首先需进行数据的初始化,创建哈夫曼树,创建哈夫曼编码,然后才能显示菜单,让用户选择相应的功能,因为前三步是后面的函数实现的基础,不能直接进行菜单功能的选择。voidmain(){intn,i=0;charsymbol,number=0;HTNodeht[M];HCodehcd[N];printf("欢迎使用");printf("请输入不同字符的个数:");scanf("%d",&n);getchar();

6、//吃掉回车printf("请输入各个不同字符,不包括回车和空格,以#号结束:");while(symbol=getchar(),symbol!='#')//symbol记录每个字符{if(symbol!=''){ht[i].data=symbol;i++;}}printf("");printf("请输入各个不同字符出现的次数:");//赋权值for(i=0;i

7、rintf("");CreateHT(ht,n);CreateHCode(ht,hcd,n);while(number!='4'){fflush(stdin);showmenu();scanf("%c",&number);switch(number){case'1':DispHCode(ht,hcd,n);break;case'2':DispHCode2(ht,hcd,n);break;case'3':print(ht,n);break;case'4':break;default:printf("输入错误,请重新输入:");}}sy

8、stem("cls");printf("感谢使用,再见!");getchar();getchar();}1.创建哈夫曼树:voidCreateHCod

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

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

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