数据结构课程设计报告赫夫曼编码译码器 毕业论文.doc

数据结构课程设计报告赫夫曼编码译码器 毕业论文.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计报告赫夫曼编码译码器 毕业论文

姓名: 班级:12数字媒体技术二班 学号: 2014 年 06 月 赫夫曼编码/译码器 实验目的 进一步掌握最优二叉树的含义。 掌握最优二叉树的结构特征,以及各种存储结构的特点及使用范围。 掌握用指针类型描述、访问和处理运算。/译码系统,一个完整的系统应具有以下功能: 初始化。从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件hfmTree.txt中。 编码。利用已建好的哈夫曼树,对文件ToBeTra.txt中的正文进行编码,然后将结果存入文件CodeFil.txt中。 译码。利用已建好的哈夫曼树将文件CodeFile.txt中的代码进行译码,结果存入文件Textfile.txt中。 打印哈夫曼树(Treeprinting).将已在内存中的哈夫曼树以直观的方式(比如树)显示在终端上,同时将此字符形式的哈夫曼树写入文件TreePrint.txt 中。 实验步骤 定义结点结构,定义哈夫曼树结构; 初始化哈夫曼树,存储哈夫曼树信息; 定义求哈夫曼编码的函数; 定义译哈夫曼编码的函数; 写出主函数。 测试系统。 实验内容 文件 工程包含两个头文件,Huffman.h用于定义显示选项菜单的相关函数,HuffmanTree.h用于定义与霍夫曼编码相关的类;包含三个cpp文件,Huffman.cpp用于实现显示选项菜单的相关函数,HuffmanTree.cpp用于实现与霍夫曼编码相关的类的成员函数等,HuffmanCode.cpp用于主函数的实现。 霍夫曼编码相关类 程序中将霍夫曼树结点与霍夫曼编码相关操作分别封装为类 通过对类内部数据的赋值与相关函数的操作,可以完成霍夫曼编码解码等操作 选项菜单等相关函数 Init()函数用于从外部文件中加载霍夫曼树,因为树人工不好整理所以我设置了读入树的叶子结点与权值,然后内部编写函数将这两种数据整理成霍夫曼树 ChooseCode()函数用于执行从终端读取编码串,然后根据读取的霍夫曼树来解码 ChooseRecode()函数用以执行解码操作,对从终端或者从文件读取的编码串进行解码并输出 InputFromFile()函数用于从外部文件读取待解码的编码串 OutputToFile()函数可以将霍夫曼树,解码后的字符串输出到外部文件中 霍夫曼编码操作 编码首先从外部初始化霍夫曼树,即调用Init()函数从外部读取数据; 然后选择编码串来源,可以从外部文件读取,也可从终端输入; 最后是进行霍夫曼解码,调用HuffmanRecoding()函数; 实验结果 首先在C盘下设置HuffmanTree.txt的初始值,第一行为叶子结点的值,第二行为权值 然后设置code.txt的初始值,为要解码的字符串 运行程序 第一步初始化 第二步从code.txt读取编码串 第三步,解码 第四步,输出到HuffmanCode.txt文件 还可以选择从终端输入编码串然后解码,输出到外部,比如编码串000011010(lqt) 实验心得 实验之后,我对于程序设计的思路又有了加深的理解,同时掌握了一定的霍夫曼编码方面的知识。在实验中犯下的错误也显示出基础掌握不够牢固的劣根,以后我定当注意。 1 数据结构课程设计 实验报告书

文档评论(0)

李天佑 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档