
哈夫曼编译码器课程设计报告样本.docx
7页学号1508 -第1学期《数据结构》课程设计报告题目:哈夫曼编/译码器专业 :计算机科学与技术(对口)班级:13( 3)姓名:陈霞指导教师:彭飞成绩:计算机学院11月12日目录设计内容及要求错误!未定义书签1.1内容1.2要求概要设计错误!未定义书签错误!未定义书签错误!未定义书签2.1抽象数据类型定义错误!未定义书签2.2模块划分设计过程及代码3.1设计过程3.2代码设计结果与分析参考文献1设计内容及要求错误!未定义书签错误!未定义书签错误!未定义书签错误!未定义书签错误!未定义书签错误!未定义书签1.1内容利用哈夫曼编码进行信息通信能够大大提高信道利用率, 缩短信息传输时间,降低传输成本可是,这要求在发送端经 过一个编码系统对待传数据预先编码,在接收端将传来的数 据进行译码(复原)对于双工信道(即能够双向传输信息的 信道),每端都需要一个完整的编/译码系统试为这样的信息 收发站写一个哈夫曼编/译码系统1.2要求一个完整的系统应具有以下功能:(1) I:初始化(Initialization) o从终端读入字符集大小n,以 及n个字符和n个权值,建立哈夫曼树,并将它存于文件 hfmTree 中。
2) E:编码(Encoding)利用已建好的哈夫曼树(如不在 内存,则从文件htmTree中读入),对文件ToBeTran中的正文 进行编码,然后将结果存入文件CodeFile中3) D:译码(Decoding)利用已建好的哈夫曼树将文件 CodeFile中的代码进行译码,结果存入文件TextFile中4) P:印代码文件(Print)将文件CodeFile以紧凑格式显 示在终端上,每行50个代码同时将此字符形式的编码写入 文件 CodePrint 中5) T:印哈夫曼树(Tree Printing)将已在内存中的哈夫 曼树以直观的方式(树或凹入表形式)显示在终端上,同时将 此字符形式的哈夫曼树写入文件TreePrint中顷V试数据](1) 数据一:已知某系统在通信联络中只可能出现8种字 符,其概率分别为 0.05,0.29,0.07,0.08,0.14,0.23,0.03,0.11,以此 设计哈夫曼编码利用此数据对程序进行调试2) 用下表给出的字符集和频度的实际统计数据建立哈夫 曼树,并实现以下报文的编码和译码:” THIS PROGRAM IS MY FAVORITE”字符ABCDEFGHIJKLM频度1866413223210321154757153220字符NOPQRSTUVWXYZ频度57631514851802381811612概要设计2.1抽象数据类型定义ADT Stack数据对象:D={ai|ai€ElemSet,i=1,2,...,n, n>0}数据关系:若D为空集,则称为空树。
若D仅为一个数据元素,则R为空集,否则R={H}, H是如下的 二元关系:(1) 再D中存在唯一的称为根的数据元素root,它在关系H下无前驱2) 若D-{root}<>空集,则存在一个划分D1, D2, •••, Dm( m>0)3) 对应于 D-{root }的划分,H-{
