哈夫曼编码和译码系统(附源代码).pdf
《哈夫曼编码和译码系统(附源代码).pdf》由会员分享,可在线阅读,更多相关《哈夫曼编码和译码系统(附源代码).pdf(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1/28 题目:哈夫曼编码和译码系统院系:专业:姓名:学号:指导教师:日期:实 训 报 告2/28 目录一.需求分析 2 二.概要设计(1)建立哈夫曼树、编码 3(2)字符匹配 3(3)哈夫曼树遍历 3 三.详细设计及编码实现 3 四.流程图(1)总流程图 15(2)编码实现流程图 16(3)译码实现流程图 17 五.调试分析(1)计算权值 18(1)生成哈夫曼树,建立编码表 18(3)将输入字符编码 19(4)输入新的字符串,进行译码 19(5)输入新的二进制数将其译为字符 20 六.系统维护 20 七实验总结 20 八.源代码 21 文档编码:CE10V10V3V9X9 HF1P1T8G1
2、C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G
3、1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8
4、G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T
5、8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1
6、T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P
7、1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1
8、P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E73/28 一需求分析1问题描述:在传送电文时,人们总是希望传送时间尽可能短,这就是要求使电文代码长度尽可能短。利用哈夫曼编码进行
9、通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统能够对待传输数据预先编码,在接收端将传来的数据进行译码。对于双工信道(即可以双向传输信息的信道),每段都需要一个完整的编/译系统。所以为这样的信息收发站写一个哈夫曼的编译码系统。2打开一篇英文文章,统计该文章中每个字符出现的次数,然后以它们作为权值,对每一个字符进行编码,编码完成后再对其编码进行译码。问题补充:1.从硬盘的一个文件里读出一段英语文章。2.统计这篇文章中的每个字符出现的次数。3.以字符出现字数作为权值,构建哈夫曼树,并将哈夫曼树的存储结构的初态和终态进行输出。4.对每个字符进行编码并将
10、所编码写入文件然后对所编码进行编译。3这个哈夫曼编码译码主要是以英文字母输入进行编码与编译,编码译码过程由系统自动完成,人工操作部分就是电文的录入,和编译出来时的读操作。二概要设计文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B
11、4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10
12、B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H1
13、0B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H
14、10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8
15、H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL
16、8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 Z
17、L8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E74/28 本程序主要用到了三个算法。(1)哈夫曼树建立、编码在初始化(I)的过程中间,要用输入的字符和权值建立哈夫曼树并求得哈夫曼编码。先将输入的字符和权值存放到一个结构体数组中,建立哈夫曼树,将计算所得的哈夫曼编码存储到另一个结构体数组中。(2)串的匹配在编码(D)的过程中间,要对已经编码过的代码译码,可利用循环,将代码中的与哈夫曼编码的长度相同的串与这个哈夫曼编码比较(3)哈夫曼遍历在印哈夫曼树(T)的中,因为哈夫曼树也是二叉树,所以就要利用二叉树的先序遍历将哈夫曼树输出。三详细设计
18、及编码实现构造哈夫曼树的方法如下:初始化:每个字符就是一个结点,字符的频度就是结点的权;1、将结点按频度从小到大排序;2、选取频度最小的两个结点,以它们为儿子,构造出一个新的结点;新结点的权值就是它两个儿子的权值之和;构造之后,从原来的结点序列里删除刚才选出的那两个结点,但同时将新生成的结点加进去;3、如果结点序列里只剩下一个结点,表示构造完毕,退出。否则回到第一步。文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C
19、1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1
20、C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G
21、1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8
22、G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T
23、8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1
24、T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P
25、1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E7文档编码:CE10V10V3V9X9 HF1P1T8G1C1 ZL8H10B4P4E75/28 编码:上面已经生成了树,接着就该对该树进行编码了。可以假定,对某个结点而言,其左孩子在当前阶段的编码为0,右孩子的编码为 1。这样就可以通过“树的遍历”的方式来生成字符 编码对照表。来到这里,基本上艰苦的已经完成了,对某个具体的字符串编码和解码就只是简单的“查表 替换”的工作了。译码:译码也
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 哈夫曼 编码 译码 系统 源代码
限制150内