河北工业大学《数据结构》课程实验实验报告题目:基于哈夫曼编码的通信系统的设计与实现专业:计算机 科学与技术 班级:计 1301 班姓名:张路浩刘禄源刘磊波李浩川邹博睿王超完成日期:2024—1—13一、试验内容1)初始化处理:建立通信系统(1)建立有 100 句中文的信息集合,每个句子称为一条信息
(2)输入编码参数:① 从终端输入编码字符集大小 n,字符编码长度 m(设 n 为 4,m 为 8);② 从终端输入编码字符(设为 A,B,C,D);(3)生成每条信息的字符编码,构造字符编码集合;(4)计算每个字符在字符编码集合中出现的概率;(5)根据字符概率构造哈夫曼树,求出每个字符的二进制编码
2)发送端信息编码(1)用户从信息集合中选择一条信息,找到该信息对应的字符编码;(2)根据该信息的字符编码,哈夫曼树求出的每个字符的二进制编码,构造出该信息的二进制编码,记录该二进制编码
(由于是软件模拟,没有发送设备,发送端的编码工作完成)
3)接受端信息译码(1)根据得到的信息的二进制编码,利用哈夫曼树求出的每个字符的二进制编码,还原出信息的字符编码;(2)根据信息的字符编码,找到对应的信息
5、实现提示(1)本试验涉及到通讯学科的编码理论和信息学科的数据压缩技术
(2)根据参数生成的通信系统的所有信息的有效存储问题
(3)信息字符编码可参考随机数的方式生成,且要求保持唯一性二、试验目的(1)掌握二叉树的存储结构及其相关操作
(2)掌握构造哈夫曼树的基本思想,及其编码/译码过程
三、流程图四、源程序代码#include#include〈cstdlib〉#include〈ctime〉#include〈string>using namespace std;constint n=4;//叶子节点个数 constint MAXVALUE = 9999;intm,p; //编码参数stri