1《数据结构》课程设计报告设计题目哈 夫 曼 (Huffman) 编/ 译 码 器学院名称信 息 工 程 学 院专业班级12 计 本 2 姓名张翠翠学号1212210217 ______ 2 题目:哈夫曼 (Huffman) 编/ 译码器一、问题描述利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本
但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)
对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统
试为这样的信息收发站写一个哈夫曼码的编/ 译码系统
二、设计目标帮助学生熟练掌握树的应用和基本操作,重点掌握二叉树的存储,这里以哈夫曼树为设计目标进一步提高学生的设计能力及对树的理解
三、任务要求一个完整的系统应具有以下功能: 1) I:初始化( Initialization)
从终端读入字符集大小n,以及 n 个字符和 n 个权值,建立哈夫曼树,并将它存于文件hfmTree中
2) E:编码(Encoding)
利用以建好的哈夫曼树(如不在内存,则从文件 hfmTree 中读入),对文件 ToBeTran中的正文进行编码,然后将结果存入文件CodeFile 中
3) D:译码(Decoding)
利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中
4) P :印代码文件( Print )
将文件 CodeFile 以紧凑格式显示在终端上,每行 50 个代码
同时将此字符形式的编码文件写入文件CodePrin 中
5) T :印哈夫曼树( Tree Printing)
将已在内存中的哈夫曼树以直观的方式(树或凹入表形式)显示在终端上,同时将此字符形式的哈夫曼树写入文件TreePrint中
四、需求分析利用哈夫曼树 (Huffman) 编/ 译码