东华理工大学 软件学院 软件工程系 1 数据结构课程设计报告 题目:哈夫曼树及其应用 学生姓名: *** 学 号: ********** 班 级: 1 0 2 1 1 1 1 6 指导教师: ** 2 0 1 2 年 6 月 3 日 东华理工大学 软件学院 软件工程系 2 目录 1、 需求分析说明~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3 2、 总体设计~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~4 3、 详细设计~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~5 4、 实现部分~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~7 5、 程序测试~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~9 6、 总结~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~10 东华理工大学 软件学院 软件工程系 3 一.需求分析说明 设计目的: 熟悉树的各种存储结构及其特点。 掌握建立哈夫曼树和哈夫曼编码的方法及带权路径长度的计算。 设计内容 数据的读入﹑存储,生成文件,将键盘输入的信息存入指定的文件中;设计一程序求解此问题.哈夫曼(Huffman)编码原理是一种利用二叉树实现的编码原理 哈夫曼(Huffman)编码是 1952 年为文本文件而建立,是一种统计编码。属于无损压缩编码。 哈夫曼编码的码长是变化的,对于出现频率高的信息,编码的长度较短;而对于出现频率低的信息,编码长度较长。这样,处理全部信息的总码长一定小于实际信息的符号长度。 锻炼我们的编码能力,真正理解数据结构的编码思想,并且锻炼我们的动手能力和成员间的配合,提高程序编写能力。 在信息传递时,希望长度能尽可能短,即采用最短码。哈夫曼编码的应用,就是采用这种有效的数据压缩技术 可以 节 省 数据文件的存储空 间和计算机 网 络 的传送 时间。 东华理工大学 软件学院 软件工程系 4 二.总体设计 (1).初始化:提示初始化界面→提示各字符及其权值将存放在 hfmTree 中→以字母出现次数为权值建立哈弗曼树→弹出选择菜单进行进一步操作; (2).编码:弹出编码界面→读取文件→提示输入要编码的字符串→对文本进行哈弗曼编码并输出编码→保存编码文件; (3).译码:弹出译码界面→利用建立好的哈弗曼树进行译码→将译码输出→保存译码文件; 哈夫曼树编/译码系统 初始化 退出 重新建立哈夫曼树 编码 打印编码 译码 东华理工大学 软件学院 软件工程系 5 三.详细设计 1.数据结构设计 #include //包含的库函数 #include #include...