洛阳理工学院
课程设计说明书
课程名称_________数据结构_______________设计课题________哈夫曼编译码器_________专班学姓业______计算机科学与技术级________xxxxx_________
_____________
号_______B12xxxxxxx________________名____xxx______________
完成日期
2014年6月14日
f课程设计任务书
设计题目:_____________哈夫曼编译码器____________________________________________________________________________设计内容与要求:
设计内容:打开一篇英文文章,统计该文章中每个字符出现的次数,然后以它们作为权值,设计一个哈夫曼编译码系统。要求:以每个字符出现的次数为权值,建立哈夫曼树,求出哈夫曼编码,对文件yua
we
中的正文进行编码,将结果存到文件yiwe
中,再对文件yiwe
中的代码进行译码,结果存到textfile中。
指导教师:xxxx
2014年6月5日
课程设计评语
成绩:指导教师:年月日
f洛阳理工学院
课程设计报告
【问题描述】打开一篇英文文章,统计该文章中每个字符出现的次数,然后以它们作为权值,设计一个哈夫曼编译码系统。利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。这要求在发送端通过一个编码系统对待传输数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编译码系统。试为这样的信息收发站编写一个哈夫曼码的编译码系统。【基本要求】以每个字符出现的次数为权值,建立哈夫曼树,求出哈夫曼编码,对文件yua
we
中的正文进行编码,将结果存到文件yiwe
中,再对文件yiwe
中的代码进行译码,结果存到textfile中。一个完整的系统应具有以下功能:1I:初始化(I
itializatio
)。从终端读入字符集大小
,以及
个字符和
个权值,建立哈夫曼树,并将它存于文件hfmTree中。2E:编码(E
codi
g)。利用已建好的哈夫曼树(如不在内存,则从文件hfmTree中读入),对文件ToBeTra
中的正文进行编码,然后将结果存入文件CodeFile中。3D:译码(Decodi
g)。利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件Textfile中。【测试数据】用下表给出的字符集和频度的实际统计数据建立哈夫曼树,并实现以下英文的编码和译码:“Ilikeplayi
gfootball”。
字符频度字符频度186N57A64O63B13P15C22Q1D32R48E103S51F21T80G15U23H47V8I57W18J1X1K5Y16L32Z1M20
【算法思想】哈夫曼编译码器的主要功能是先建立哈夫曼树,然后利用建好的哈夫曼树生r