数据结构课程设计报告 周经辉 20084001
四.使用说明
图2.4 生成的文件
本软件默认生成的编码文件名为:a.cod 默认生成的译码文件名为:b.txt 执行提示:输入所要编码的文本文件。
图2.5 编码过程
编码完成,默认生成a.cod文件,等待译码。
输入所要译码的cod文件:
图2.6 译码过程
译码完成,默认生成b.txt文档文件。
五.调试分析说明
5
数据结构课程设计报告 周经辉 20084001
表2.1 调试遇到的问题及解决方案 遇到的问题 根据所提供的权值不能正确生成哈夫曼树 分类 数据结构基础 解决方法 哈夫曼树结构体的lchild,rchild,parent用-1初始化,因为0也可能是节点,防止造成冲突 根据生成的哈夫曼树不能有效的生成哈夫曼编码,编码文件中会存在乱码 数据结构基础 所给存储编码的位串数组bits[256]空间大小固定,权值较大的编码长度较短,后半数组空间会有乱码产生,引入函数copy(),根据编码起始位s来截取编码有效位写入文件。 根据编码文件,无法还原生成文本文件,并提示编码错误。 数据结构基础 开始节点i=256*2-1为空节点,其左右孩子指向未知地址空间,无法进入哈夫曼树的扫描,将开始节点改为i=256*2-2,此节点才是哈夫曼树的根节点,问题得以解决。 哈夫曼编码无法与原文本字符对应,在编码结构体添加字符变量去存储相应字符,得不到期望的效果。 构造哈夫曼树时,将其字符的ASCLL码的C语言基础 值与哈夫曼树结构体数组的下标相对应,译码时,直接将其下标当作字符写入文件,问题得以解决。 六.参考文献
1、 严蔚敏,吴伟民,《数据结构》(C语言版)[M],北京:清华大学出版社 2、 严蔚敏,《数据结构习题集与上机指导》[M],北京:清华大学出版社 3、 徐德民,《最新C语言程序设计》[M],电子工业出版社,1992 4、 张国峰,《C++语言及其程序设计教程》[M],电子工业出版社,1992
6