学号1508
20152016学年第1学期
《数据结构》
课程设计报告
题目:
哈夫曼编译码器
专业:计算机科学与技术(对口)
班级:
13(3)
姓名:
陈霞
指导教师:
彭飞
成绩:
计算机学院2015年11月12日
f计算机学院《数据结构》课程设计报告
目录1设计内容及要求3
11内容312要求32概要设计321抽象数据类型定义422模块划分43设计过程及代码531设计过程532代码74设计结果与分析105参考文献12
1
f计算机学院《数据结构》课程设计报告
1设计内容及要求
11内容
利用哈夫曼编码进行信息通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编译码系统。试为这样的信息收发站写一个哈夫曼编译码系统。
12要求
一个完整的系统应具有以下功能:(1)I:初始化(I
itializatio
)。从终端读入字符集大小
,以及
个字符和
个权值,建立哈夫曼树,并将它存于文件hfmTree中。(2)E:编码(E
codi
g)。利用已建好的哈夫曼树(如不在内存,则从文件htmTree
中读入),对文件ToBeTra
中的正文进行编码,然后将结果存入文件CodeFile中。(3)D:译码(Decodi
g)。利用已建好的哈夫曼树将文件CodeFile中的代码
进行译码,结果存入文件TextFile中。(4)P:印代码文件(Pri
t)。将文件CodeFile以紧凑格式显示在终端上,每
行50个代码。同时将此字符形式的编码写入文件CodePri
t中。(5)T:印哈夫曼树(TreePri
ti
g)。将已在内存中的哈夫曼树以直观的方式
(树或凹入表形式)显示在终端上,同时将此字符形式的哈夫曼树写入文件TreePri
t中。
测试数据(1)数据一:已知某系统在通信联络中只可能出现8种字符,其概率分别为005029007008014023003011以此设计哈夫曼编码。利用此数据对程序进行调试。(2)用下表给出的字符集和频度的实际统计数据建立哈夫曼树,并实现以下报文的编码和译码:“THISPROGRAMISMYFAVORITE”。
字符
ABCDEFGHIJKLM
频度18664132232103211547571
5
3r