logo资料库

哈夫曼树 课程设计 实验报告.doc

第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
资料共7页,全文预览结束
一、需求分析 1、理论背景 以哈弗曼树─即最优二叉树,带权路径长度最小的二叉树,经常应用于数据压缩。 在 计算机信息处理中,“哈夫曼编码”是一种一致性编码法(又称"熵编码法"),用于数据的无 损耗压缩。这一术语是指使用一张特殊的编码表将源字符(例如某文件中的一个符号)进行 编码。这张编码表的特殊之处在于,它是根据每一个源字符出现的估算概率而建立起来的(出 现概率高的字符使用较短的编码,反之出现概率低的则使用较长的编码,这便使编码之后的 字 符 串 的 平 均 期 望 长 度 降 低 , 从 而 达 到 无 损 压 缩 数 据 的 目 的 ) 。 这 种 方 法 是 由 David.A.Huffman 发展起来的。 例如,在英文中,e 的出现概率很高,而 z 的出现概率则最 低。当利用哈夫曼编码对一篇英文进行压缩时,e 极有可能用一个位(bit)来表示,而 z 则可 能花去 25 个位(不是 26)。用普通的表示方法时,每个英文字母均占用一个字节(byte), 即 8 个位。二者相比,e 使用了一般编码的 1/8 的长度,z 则使用了 3 倍多。倘若我们能实 现对于英文中各个字母出现概率的较准确的估算,就可以大幅度提高无损压缩的比例。 2、功能需求 将任意指定的文本文件中的字符统计后,按 Huffman 编码方式对文件进行编码,并保 存码表及建立的 Huffman 树;用给定的码表对用 Huffman 方式编码的文件进行压缩和解压 缩。 二、概要设计 1.模块分解 2.模块功能说明 编码:读取默认源文件→统计字符及其频数做权值→建立哈弗曼树→对文本进行哈弗曼编码 并输出编码→保存到默认编码文件; 译码:打开默认文件→利用建立好的哈弗曼树进行译码→将译码输出→保存到默认的译码文 件; 退出:退出系统,程序运行结束。
3.系统总流程图 三、详细设计 1. 统计字频
2. 构造哈夫曼树
3. 编码
4. 译码
四、测试结果 1. 源文件
2. 哈夫曼编码文件 3. 编码文件 4. 译码文件
分享到:
收藏