信计刘旭东哈夫曼编码课程设计.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文档。上传文档
查看更多
宜春学院 本科课程设计说明书 学  院: 数计学院 专业年级: 10信息与计算科学 课 程: 信息论与编码课程设计 设计题目: Huffman编码的设计与实现 指导教师: 赵志芳 2012年12月 学生姓名: 刘旭东 学 号:1031303124 中文摘要 哈夫曼编码是广泛用于数据文件压缩的十分有效的编码方法。其压缩通常在20%~90%之间。哈夫曼编码算法使用字符在文件中出现的频率表来建立一个用0,1串表示各字符的最优表示方式。 哈夫曼算法构造的扩充二叉树称为哈夫曼编码树或哈夫曼树。当然,还有编码和译码部分。本系统的前端开发工具是Visual C++6.0。具有输入字符集大小及权值大小,构造哈夫曼树,并对用户输入的字符串进行编码以及译码还有退出四种功能。本程序经过测试后,功能均能实现,运行稳定。 关键词:哈夫曼树,编码,权值 英文摘要 Huffman coding is widely used in data file compression coding method is very effective. The compression usually between 20% ~ 90% in. Huffman use of the character encoding algorithm in the document appeared in frequency table with 0 to build a string of optimal each character said means. The algorithms construction huffman extended binary tree called huffman coding tree or huffman tree. Of course, there are coding and decoding parts. This system the front-end development tools is Visual c + + 6.0. With input character set size and weitht size, structure tree huffman, and user input string coding and decoding and exit four functions. This procedure after testing, functions are realized, steady operation. 目 录 引言 3 1、问题分析 4 2、算法设计 5 3、算法实现 6 3.1流程图 6 3.2程序代码 7 3.3调试结果 10 3.3.1例题5—7的测试结果 10 3.3.2习题5-12的调试结果 11 4、结论 13 5、参考文献 13 引言 哈夫曼在上世纪五十年代初就提出这种编码时,根据字符出现的概率来构造平均长度最短的编码。它是一种变长的编码。哈夫曼编码应用广泛,如JPEG中就应用了哈夫曼编码。在编码中,若各码字长度严格按照码字所对应符号出现概率的大小的逆序排列,则编码的平均长度是最小的。构造好哈夫曼树后,就可根据哈夫曼树进行编码。然而怎样构造一棵哈夫曼树呢?最具有一般规律的构造方法就是哈夫曼算法。字符根据其出现的概率作为权值构造一棵哈夫曼树后,经哈夫曼编码得到的对应的码值。只要使用同一棵哈夫曼树,就可把编码还原成原来那组字符。显然哈夫曼编码是前缀编码,即任一个字符的编码都不是另一个字符的编码的前缀,否则,编码就不能进行翻译。 利用哈夫曼算法的编码和译码功能,重复地显示并处理以下项目,即构造哈夫曼树,编码及译码几项功能,直到选择退出为止。本次设计就是为这样的一个哈夫曼的编/译码器。 哈夫曼编码所以能产生较短的码文,是因为哈夫曼树具有最小加权路径长度的二叉树。如果叶结点的权值恰好是某个需编码的文本中各字符出现的次数,则编码后文本的长度就是该哈夫曼树的加权路径长度。译码过程为自做向右逐一扫描码文,并从哈夫曼树的根开始,将扫到的二进制位串中的相邻位与哈夫曼树上标的0,1相匹配,以确定一条从根到叶子结点的路径,一旦到达叶子,则译出了一个字符。再回到树根,从二进位串的下一位开始继续译码。软件运行环境及开发工具是Visual C++6.0。 1、问题分析 为了实现,

文档评论(0)

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

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

1亿VIP精品文档

相关文档