安徽大学数据结构课程设计报告项目名称:哈弗曼编/译码系统的设计与实现姓名:鉏飞祥学号:E21414018专业:软件工程完成日期2016/7/4计算机科学与技术学院1
1问题描述•问题描述:利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本
但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(解码)
对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统
试为这样的信息收发站设计一个哈夫曼编译码系统
2基本要求(1)输入的形式和输入值的范围;(2)输出的形式;(3)程序所能达到的功能
基本要求(1)初始化(Initialzation)
从数据文件DataFile
data中读入字符及每个字符的权值,建立哈夫曼树HuffTree;(2)编码(EnCoding)
用已建好的哈夫曼树,对文件ToBeTran
data中的文本进行编码形成报文,将报文写在文件Code
txt中;(3)译码(Decoding)
利用已建好的哈夫曼树,对文件CodeFile
data中的代码进行解码形成原文,结果存入文件Textfile
txt中;(4)输出(Output)
输出DataFile
data中出现的字符以及各字符出现的频度(或概率);输出ToBeTran
data及其报文Code
txt;输出CodeFile
data及其原文Textfile
概要设计说明本程序中用到的所有抽象数据类型的定义
主程序的流程以及各程序模块之间的层次(调用)关系
(1)数据结构哈夫曼树的节点structhuff{1intweight;intparent;intl;intr;};哈夫曼编码的存储structhuff*hufftree;(2)程序模块选择1到i-1中parent为0且权值最小的两个下标voi