姓名: 班级:12 数字媒体技术二班 学号: 2025 年 06 月 赫夫曼编码/译码器数据结构课程设计实验报告书一、实验目的1. 进一步掌握最优二叉树的含义
2. 掌握最优二叉树的结构特征,以及各种存储结构的特点及使用范围
3. 熟练掌握哈夫曼树的建立和哈夫曼编码方法
4. 掌握用指针类型描述、访问和处理运算
二、实验内容编写一个哈夫曼码的编/译码系统,一个完整的系统应具有以下功能:(1) 初始化
从终端读入字符集大小 n,以及 n 个字符和 n 个权值,建立哈夫曼树,并将它存于文件 hfmTree
(2) 编码
利用已建好的哈夫曼树,对文件 ToBeTra
txt 中的正文进行编码,然后将结果存入文件 CodeFil
(3) 译码
利用已建好的哈夫曼树将文件 CodeFile
txt 中的代码进行译码,结果存入文件 Textfile
(4) 打印哈夫曼树(Treeprinting)
将已在内存中的哈夫曼树以直观的方式(比如树)显示在终端上,同时将此字符形式的哈夫曼树写入文件 TreePrint
三、实验步骤1
定义结点结构,定义哈夫曼树结构;2
初始化哈夫曼树,存储哈夫曼树信息;3
定义求哈夫曼编码的函数;4
定义译哈夫曼编码的函数;5. 写出主函数
6. 测试系统
四、实验内容1
文件工程包含两个头文件,Huffman
h 用于定义显示选项菜单的相关函数,HuffmanTree
h用于定义与霍夫曼编码相关的类;包含三个 cpp 文件,Huffman
cpp 用于实现显示选项菜单的相关函数,HuffmanTree
cpp 用于实现与霍夫曼编码相关的类的成员函数等,HuffmanCode
cpp 用于主函数的实现
霍夫曼编码相关类程序中将霍夫曼树结点与霍夫曼编码相关操作分别封装为类通过对类内部数据的赋值与相关