哈夫曼编码程设计报.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程设计报告 基于哈夫曼树的文件压缩/解压程序 专业班级:信科(2)班 姓名:徐爱娟 谢静 学号:20101614310051 20101614310050 2012-12_31 一 需求分析 1.课题要求(实现文件的压缩与解压并计算压缩率) A.描述压缩基本符号的选择方法 B.运行时压缩原文件的规模应不小于5K 2.设计目标 A软件名称:基于哈夫曼编码的文件压缩实用程序系统 B软件组成:huffman.exe C制作平台及相关调试工具: Windows XP sp3 Microsoft Visual C++ 6.0 D运行环境:dos/ win2K/win2003/winxp/ E性能特点: 软件由一个可执行文件组成 huffman.exe为dos系统应用程序,体积小,高效快捷,适用范围广。 2. 对单字节(256叶子)进行哈夫曼编码,压缩率良好 3. 使用二级缓冲压缩/解压技术,速度比一般算法高 4. 可压缩最大体积为4G的文件,达到Fat32文件系统极限 5. 文件索引体积比常规算法小50% 二 概要设计  1.相关函数介绍 1. bool InitFromFile(string fileadd) 从文件中初始化哈夫曼树函数 2. void HTCreat(HTNode ht[],int n) 构造哈夫曼树函数 3. void HCCreat(HTNode ht[],HCode hcd[],int n) 构造哈夫曼编码函数 4. void ConvertFile(HCode hcd[],string fileadd,string fileadd2) 压缩and写入文件函数 5. void DecompressionFile(string fileadd2,string fileadd3) 文件解压函数 6. string Compression(string fileadd) 压缩函数 7. string Decompression(string fileadd2) 解压函数 Clock ( )三 详细设计 Clock ( ) 1压缩算法部分 A核心算法: Huffman编码是一种可变长编码方式,是由美国数学家David Huffman创立的,是二叉树的一种特殊转化形式。编码的原理是:将使用次数多的代码转换成长度较短的代码,而使用次数少的可以使用较长的编码,并且保持编码的唯一可解性。Huffman算法的最根本的原则是:累计的(字符的统计数字*字符的编码长度)为最小,也就是权值(字符的统计数字*字符的编码长度)的和最小。 B哈夫曼树构造算法: Huffman树是二叉树的一种特殊转化形式。以下是构件Huffman树的例子:比如有以下数据, ABFACGCAHGBBAACECDFGFAAEABBB先进行统计A(8) B(6) C(4) D(1) E(2) F(3) G(3) H(1) 括号里面的是统计次数 生成Huffman树:每次取最小的那两个节点(node)合并成一个节点(node),并且将累计数值相加作为新的接点的累计数值,最顶层的是根节点(root) 注:列表中最小节点的是指包括合并了的节点在内的所有节点,已经合并的节点不在列表中 运算的过程如下: 1:D+H(2) 2:DE+H(4) 3:F+G(6) 4:C+DEH(8) 5:B+FG(12) 6:A+CDEH(16) 7:ACDEH+BFG(28) 那么转化为Huffman树就是 Huffman树 层数 Root ┌┴┐ ACDEH BFG 1 ┌┴┐┌┴┐ CDEH A B FG 2 ┌┴┐ ┌┴┐ DEH C F G 3 ┌┴┐ DH E 4 ┌┴┐ D H

文档评论(0)

mv2323 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档