哈夫曼算法实现字符串压缩——实验报告单.doc
《哈夫曼算法实现字符串压缩——实验报告单.doc》由会员分享,可在线阅读,更多相关《哈夫曼算法实现字符串压缩——实验报告单.doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、用哈夫曼编码实现文件压缩实 验 报 告课程名称 数据结构B 实验学期 2011 至 2012 学年 第 一 学期学生所在系部 计算机系 年级 2009级 专业班级 计科B091 学生姓名 韩翼 学号 6 任课教师 盛建瓴 实验成绩 一、实验题目:用哈夫曼编码实现文件压缩二、实验目的:1、 了解文件的概念。2、 掌握线性链表的插入、删除等算法。3、掌握Huffman树的概念及构造方法。4、掌握二叉树的存储结构及遍历算法。5、利用Huffman树及Huffman编码,掌握实现文件压缩的一般原理。三、实验设备与环境:微型计算机、Windows 系列操作系统 、Visual C+6.0软件四、实验内容
2、:根据ascii码文件中各ascii字符出现的频率情况创建Haffman树,再将各字符对应的哈夫曼编码写入文件中,实现文件压缩。五、概要设计:本次试验采用将字符用长度尽可能短的二进制数位表示方法,即对于文件中出现的字符,无须全部都用8位的ASCLL码进行存储,根据他们在文件中出现的频率不同,我们利用Haffman算法使每个字符能以最短的二进制字符进行存储,以达到节省存储空间,压缩文件的目的。解决了压缩需采用的算法,程序的思路已然清晰:1、 统计需压缩文件中每个字符出现的频率。2、 将每个字符的出现频率作为叶子结点构建Haffman树,然后将树中结点引向其左孩子的分支标“0”,引向其右孩子的分支
3、标“1” ; 每个字符的编码即为从根到每个叶子的路径上得到的0、1序列,这样便完成了Haffman编码,将每个字符用最短的二进制字符表示。3、 打开需压缩的文件,再将需压缩文件中的每个ASCII码对应的编码按bit单位输出。4、 文件压缩结束。 六、详细设计:(1)Huffman树简介 路径:从树中一个结点到另一个结点之间的分支构成这两个结点间的路径路径长度:路径上的分支数树的路径长度:从树根到每一个结点的路径长度之和树的带权路径长度:树中所有带权结点的路径长度之和Huffman树设有n个权值w1,w2,wn,构造一棵有n个叶子结点的二叉树,每个叶子的权值为wi,则wpl最小的二叉树叫Huff
4、man树。(2)构造Huffman树的方法Huffman算法构造Huffman树步骤(a)根据给定的n个权值w1,w2,wn,构造n棵只有根结点的二叉树,令起权值为wj。(b)在森林中选取两棵根结点权值最小的树作左右子树,构造一棵新的二叉树,置新二叉树根结点权值为其左右子树根结点权值之和。(c)在森林中删除这两棵树,同时将新得到的二叉树加入森林中。(d)重复上述两步,直到只含一棵树为止,这棵树即哈夫曼树。 对于Haffman 的创建算法,有以下几点说明: a) 这里的 Haffman 树采用的是基于数组的带左右儿子结点及父结点下标 作为存储结点的二叉树形式,这种空间上的消耗带来了算法实现上的便
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 哈夫曼 算法 实现 字符串 压缩 实验 报告
限制150内