- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程设计报告Huffman编码与文件压缩
课 程 设 计 报 告题目: 题目三 哈夫曼编码与文件压缩 课程名称: 数据结构 专业班级:计算机科学与技术1003班 学 号: 姓 名: 鲁辰 指导教师: 报告日期: 2012.09.26 计算机科学与技术学院目 录1任务书32 绪言42.1 课题背景42.2 课题研究的目的和意义42.3 国内外概况42.4 课题的主要研究工作43 系统设计方案的研究53.1 系统的控制特点与性能要求53.2 系统实现的原理53.2.1 Huffman算法53.2.2 Huffman编码53.2.3 压缩过程53.2.4 解压过程63.3 系统实现方案分析63.3.1 实现Huffman编码及压缩所需的变量63.3.2文件名处理73.3.3 实现Huffman编码及压缩过程所需要的函数73.3.4 实现解压缩过程所需要的函数83.3.5 输入输出84 基于Huffman编码的文件压缩程序的设计94.1 主模块功能介绍95 系统的实现105.1 目标程序运行截图105.2 测试及测试数据分析105.2.1 测试数据105.2.2 测试数据分析116 总结与展望12参考文献13附录 英文缩写词14任务书题目三 哈夫曼编码与文件压缩设计目的:掌握二叉树、哈夫曼树的概念,性质与存储结构,能够利用哈夫曼算法实现哈夫曼编码,并应用于文件压缩,从而提高学生综合运用知识的技能与实践能力。设计内容:分析与设计哈夫曼树的存储结构,实现哈夫曼算法以及编码与译码基本功能,并对任意文本文件利用哈夫曼编码进行压缩得到压缩文件,然后进行解压缩得到解压文件。有兴趣的同学可以查阅资料实现Lempel-Ziv sliding window压缩方法,并与之比较。设计要求:(1)要求界面友好,输入文本文件可带路径(如:D:\doc\original.txt),哈夫曼算法所得到的压缩文件名为*.cod,哈夫曼树也以文件形式保存,文件名为*.hfm。(2)显示压缩比、压缩时间、解压时间与对应的编码表。设计提示:统计文本文件中各字符的频度并作为权值生成哈夫曼树,并利用哈夫曼树进行二进制编码。 参考文献:[1] 严蔚敏, 吴伟民. 数据结构(C语言版). 北京: 清华大学出版社,1997[2] 王晓东. 计算机算法设计与分析. 北京: 电子工业出版社, 2007[3] 严蔚敏, 吴伟民, 米宁. 数据结构题集(C语言版). 北京: 清华大学出版社,19992 绪言2.1 课题背景在计算机软件应用领域,文件压缩是一项重要的技术。为了减少传输数据量或者减少存储空间,都需要将大型文件压缩成较小的文件。2.2 课题研究的目的和意义Huffman编码具有速度快、简单等优点,是一种很好的压缩方法。2.3 国内外概况1952年,David A. Huffman在麻省理工攻读博士时所发明的,并发表于《一种构建极小多余编码的方法》(A Method for the Construction of Minimum-Redundancy Codes)一文。2.4 课题的主要研究工作(1)通过查阅书籍并在网上查看相关论文,对Huffman编码算法有一个清晰的认识。(2) 使用 Microsoft Visual Studio 2010 实现基于Huffman编码的文件压缩程序。(3)通过使用各种不同的测试文件对该程序进行测试,记录并分析压缩算法的压缩比、压缩时间等数据。(4)分析测试数据,并根据需要对代码进行优化。3 系统设计方案的研究3.1 系统的控制特点与性能要求本系统是使用VS2010开发的MFC应用程序,对话框是使用MFC生成的,而对文件读写操作以及Huffman编码的算法部分是用C语言实现的。本系统的特点是图形界面,使用简单,便于操控。本系统不要求使用者安装Visual Studio 或者 MFC类库(?)。3.2 系统实现的原理3.2.1 Huffman算法(1)根据给定的n个权值{}构成n棵二叉树的集合F={},其中每棵二叉树中只有一个带权为的根结点,其左右子树为空。(2)在F中选取两棵根结点权值最小的树作为左右子树构造一棵新的二叉树,且置新的二叉树的根结点的权值为其左右子树上根结点的权值之和。(3)在F中删除这两棵树,同时将新达到的二叉树加入F中。(4)重复(2)和(3),直到F只含一棵树为止。3.2.2 Huffman编码假设每种字符在电文中出现的次数为,其编码长度为,电文中只有n种字符,则电文总长为。对应到二叉树上,若置为叶子结点的权,恰为从根到叶子结点的路径长度,则恰为二叉树上的带权路径长度。由此可见,设计电文总长最短的二进制前缀编码即为以n种字符出现的频率做权,设计一棵Huffman树的问题,由此得到的二进制前缀编码即为Huffman编码。3.2.3 压
您可能关注的文档
- 数学高考应知与应会.doc
- 数学高考总复习不等式.doc
- 数学高三寒假练习题.docx
- 岳池产品定位书终稿.doc
- 数学高考评卷心得体会.doc
- 数学高考知识全方位练习.doc
- 崂山茶可以打造成岛城的一张靓丽名片.doc
- 崇尚生命文化引领发展发言稿.doc
- 数据库《VisualFoxPro》模拟试卷.doc
- 数据库《VisualFoxPro》模拟试卷5.doc
- 2025及未来5年无限遥控声控设备项目投资价值分析报告.docx
- 《QBT 4897-2015 镜头擦拭纸》(2026年)实施指南.pptx
- 《金融科技概论》(第二版)课件 第1--3章 金融科技的概况、大数据、云计算.pptx
- 《QBT 4898-2015 溶解浆》(2026年)实施指南.pptx
- 小升初题型专题--05词汇句型--专项训练(全国通用版)试题卷.docx
- 极端天气灾害应急预案.docx
- 《QBT 4899-2015 标牌用仿皮纸》(2026年)实施指南.pptx
- 2025及未来5年CAD绘图纸项目投资价值分析报告.docx
- 《QBT 4882-2015 日用塑料水壶》(2026年)实施指南.pptx
- 小升初查漏补缺检测卷(一)语文六年级下册(统编版).docx
原创力文档


文档评论(0)