哈夫曼编码方案

上传人:新** 文档编号:469899814 上传时间:2022-12-20 格式:DOCX 页数:3 大小:10.40KB
返回 下载 相关 举报
哈夫曼编码方案_第1页
第1页 / 共3页
哈夫曼编码方案_第2页
第2页 / 共3页
哈夫曼编码方案_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《哈夫曼编码方案》由会员分享,可在线阅读,更多相关《哈夫曼编码方案(3页珍藏版)》请在金锄头文库上搜索。

1、2010116020247 刘桂亮课题描述1.1问题描述利用哈夫曼编码进行通信,可以压缩通信的数据量,提高传输效率,缩短信 息的传输时间,还有一定的保密性。现在要求编写一程序模拟传输过程,实现在 发送前将要发送的字符信息进行编码,然后进行发送,接收后将传来的数据进行 译码,即将信息还原成发送前的字符信息。1.2需求分析在本例中设置发送者和接受者两个功能,1.2.1发送者的功能: 输入待传送的字符信息; 统计字符信息中出现的字符种类数和各字符出现的次数(频率); 根据字符的种类数和各自出现的次数建立哈夫曼树; 利用以上哈夫曼树求出各字符的哈夫曼编码; 将字符信息转换成对应的编码信息进行传送。1.

2、2.2接受者的功能: 接收发送者传送来的编码信息; 利用上述哈夫曼树对编码信息进行翻译,即将编码信息还原成发送前的字符信 息。从以上分析可发现,在本例中的主要算法有三个:(1)哈夫曼树的建立;(2)哈夫曼编码的生成;(3)对编码信息的翻译。1.3程序设计目标层次一:编程从文件中读取一段报文,首先统计字符的频度,然后建立哈 夫曼树,并给出报文的编码,然后根据使用者的需要对指定文件里的任意二进制 编码进行译码并显示。层次二:使用者从系统界面输入字符串,统计从键盘输入的字符串信息, 然后建立哈夫曼树,并给出报文的编码,然后根据使用者的需要对指定文件里的 或者使用者从系统界面输入任意二进制编码的进行译

3、码并显示。二设计简介及设计方案论述2.1设计简介文字处理是现代计算机应用的重要领域。文本由字符组成,字符以某种编码 形式存储在计算机中。每个字符的编码可以是相等长度的,也可以是不等长度的。 ASCII编码是等长编码。为了提高存储和处理文本的效率,在一些计算机应用场 合,如数据通信,常采用不等长的编码,对常用的字符用较少的码位,不常出现 的字符用较多的码位编码,从而减少文本的存储长度。哈夫曼编码就是用于此目 的的不等长编码方法。所以本次设计就是通过构造哈夫曼树来生成哈夫曼编码, 最终完成设计要求。2.2设计方案论述哈夫曼编码/译码程序主要由主函数、哈夫曼树类和各种功能函数组成,程 序运行时首先进

4、入主函数,对各种功能函数进行调用,从而实现了整个程序的运 行。将各种不同的函数分别包含在各自的结构体中,使整个程序结构更加的清晰 明了,各功能相互独立且紧密联系,有利于编程的实现,同时也体现了面向对象 设计语言的封装性。在主菜单中运用了 switch()函数和“case”语句,便于对整 个程序操作和控制;对数据保存在文档中,则运用了文件I/O流和C语言的文件 处理方式,进行文件与内存之间输入,输出数据。2.3概要设计在主函数声明HuffmanTreel类的对象HuffmanNode,然后用HuffmanNode 调用它的成员函数TranslatedCode(),此函数能读取Adata.txt里的字符串并 统计,然后建立哈 夫曼树并对各个字符编码和保存相关 信息。然后对象 HuffmanNode再调用成员函数TranslateArtcle()对指定文件得到的二进制编 码进行译码,并保存翻译得到的信息;获取并保存从键盘输入的字符串,并统 计其信息。然后利用这些信息建立哈夫曼树对各个字符进行编码和保存相关信 息。接着可以调用函数HuffmanTranslateCoding2()对指定文件得到的二进制 编码信息进行译码和保存得到的翻译信息,或者可以调用 HuffmanTranslateCoding()对从系统页面输入的二进制编码进行翻译并保存翻译信息。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号