编辑: 颜大大i2 2019-07-06
《数据结构》Huffman树实验报告 班级:电信0608 姓名:杨玉森 学号:012006013509 完成日期:2007年12月1日 指导教师:刘玉 目录

一、1 需求分析:

11

二、 详细设计

112 详细设计

1 12.

1.程序简单流程图如下:

11 2.2 2.?

21

三、 调试分析

553 调试分析

5 31.1 . 出现的问题即及解决

55 3.22. 算法分析

55 3.33. 经验和体会

65

四、 用户使用说明

664 用户使用说明

6

五、 测试结果

665 测试结果

6 6 总结

六、 附录

77 1 需求分析: 本实验要求建一棵Huffman树并求树中各节点字符的Huffman编码并打印输出,本程序完成了此项要求. 程序要求输入一字符串,以#结束,其中用户可以输入任何字符,但本程序仅视小写英文字母和空格键为有效值,将其读入指定位置对其他形式的输入不作处理,即视为不存在,不做保存. 程序的输出位用户输入的有效字符,并统计其出现的次数(权值)一并输出到屏幕上;

然后,程序对输入的字符进行Huffman编码并输出. 本程序能成功的完成一段任意字符串的录入并记录其中出现过的小写英文字母和空格,然后统计上述字符出现的次数(权值),然后根据以上得到的信息对有效字符(小写英文字母和空格)进行Huffman编码并输出其编码. 详细设计 1.程序简单流程图如下: 2. 本程序可分为主程序、数据输入、建Huffman树并进行Huffman编码这三个模块,各模块具体说明如下: 主函数模块: 完成各个函数的调用,及输出经处理后的输入字符,以及它们对应的权值和Huffman编码.伪码如下: void main() { getdata(&da)调用函数完成数据的输入 Huffmancoding(&HT,&HC,count,da);

//调用Huffmancoding函数 Printf(整理后的输入数据);

printf(Huffman编码)输出Huffman编码 } 数据输入模块: 完成从键盘输入一任意长度的字符串,并对其进行处理,从中提取有效的字符,并按其ASCII码的先后顺序存入数组da的数据域中,同时统计各有效字符的权值,将其存到da中和字符对应的权值域中.伪码如下: void getdata(HTdata **da) { if(!(da1 = (HTdata *)malloc(28*sizeof(HTdata)))) //给da1分配存储空间 { error;

} da1[1].data 初始化da1 da1[1].w = 0;

for(i = 2;

i = 'a' && ch

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题