- 10
- 0
- 约1万字
- 约 21页
- 2018-09-21 发布于福建
- 举报
赫夫曼算法及其应用研究与实现
赫夫曼算法及其应用研究与实现
摘#8195;要 本文主要给出了数据结构中的Huffman算法,并详细介绍了Huffman算法,Huffman编码,按照这一思路,将其应用于通信编码、多分支结构程序设计中,提高了效率。结合计算机文件存储方式,设计并用软件实现了对文件的数据压缩,其过程主要分为压缩和解压缩两部分。在应用Huffman编码进行压缩时,其压缩效率与文件大小无关,只与文件中字符出现的频率有关。根据字符出现的概率来构造平均长度最短的编码,它是一种变长的编码。在编码中,若各编码长度严格按照编码所对应符号出现概率的大小排列,则编码的平均长度是最小的。本文的主要目的是通过对Huffman算法的论述和演示,阐述了Huffman算法的原理及其特性,说明了这种压缩算法的优越性和它被广泛应用的原因。且在数据压缩等领域中,Huffman算法是一种常用的数据压缩方法,应用结果表明,该算法具有很高的实用价值。
关键词 Huffman算法;平均长度;数据压缩
中图分类号 TP 文献标识码 A 文章编号 1673-9671-(2011)112-0166-04
1 Huffman算法的概述
所谓赫夫曼算法是由赫夫曼(D.A.Huffman)在1952年最早就构造带权路径长度WPL最小的二叉树(亦称最优二叉树或赫夫曼树)而给出的一个带有一般规律的算法,其算法描述如下。
1)根据给定的n 个权值{ω1,ω2,…,ωn}构成n棵二叉树的森林集合F={T1,T2,…,Tn},其中每棵二叉树Ti中只有一个带权值为ωi的根结点,其左右子树为空。
2)在森林F中任意选取两棵根结点的权值最小的树作为左右子树,构造一棵新的二叉树,且设置新的二叉树的根结点的权值为其左、右子树上根结点的权值之和。
3)在F中删除这两棵树,同时将新得到的二叉树加入F中。
4)重复2)和3),直到森林F只含一棵树为止。这棵树便是赫夫曼树。在得到最优二叉树之后,从叶子出发走一条从叶子到根的路径即可得到该叶子结点字符对应的Huffman编码。
本文中的Huffman编码采用一维数组表示,其中每个元素是一个带有头结点的线性链表。对线性链表的插入操作是在表头进行的。为了求得赫夫曼编码,首先是要构造是一种带权路径长度最短的二叉树,即最优二叉树。赫夫曼首先给出了该类树的构造方法,故称其为赫夫曼算法,同时也把用此方法构造的树称为赫夫曼树。该算法的核心思想就是在没有严格限定工作经验(权)调整工作步骤的顺序,使权值越大的结点离根结点越近,以寻求工作总量的极小化。
根据赫夫曼算法,我们可以构造赫夫曼(HUFFMAN)树,编写赫夫曼编码。赫夫曼编码是赫夫曼树的一个应用。赫夫曼编码应用广泛,如通信编码和判定程序等方面中就广泛应用了赫夫曼编码。
2 Huffman树及Huffman编码的存储表示
2.1 Huffman树
赫夫曼树又称最优二叉树,是一类带权路径长度最短的树。在引入赫夫曼树之前,先简要介绍几个概念。
如果在一棵树中存在着结点序列k1,k2,...,kj,使得ki是ki+1的双亲(1=ij),则称k1,k2,...,kj是从k1到kj的路径,由于树中每个结点都有且只有一个双亲结点,所以它也是这两个结点之间的唯一路径。从k1到kj所经过的分支数我们称为这两点之间的路径长度。
树的路径长度是从树的根结点到每个分支结点所经过的分支数。通常我们将树中的结点赋上一个有着某种意义的实数,我们称这个实数为该结点的权,所以结点的带权路径长度规定为从根结点到该结点之间的路径长度与该结点上权的乘积。所以树的带权路径长度规定为树中所有叶子结点的带权路径长度之和。
所谓树的带权路径长度就是树中所有叶子结点的带权路径长度之和。通常记作WPL=(W1*L1+W2*L2+W3*L3+…+ Wn*Ln),假设有n个权值{W1,W2,W3...,Wn}构成一棵有n个叶结点的二叉树,相对应的叶子结点的路径长度分别为{L1,L2,L3...,Ln}。我们可以证明其中WPL值最小的为哈夫曼树。
定义1:假设有n个权值{ω1,ω2,……,ωn},在具有n个叶子结点且分别以其为权值的二叉树中,带权路径长度最小的二叉树称做最优二叉树或赫夫曼树(Huffman树)。
在用二叉树来设计二进制的编码时,如约定左分支表示字符0,右分支表示字符1,则从根结点到叶子结点的路径上分支字符组成的字符串作为该叶子结点字符的编码。该编码一定是前缀编码。
定义2:对应最优二叉树的二进制前缀编码称为Huffman 编码(或赫夫曼编码)。
2.2 Huffman编码的存储表示
typedef struct
{ unsigned i
您可能关注的文档
- 资产减值准则会计实务中应用.doc
- 资产减值准则存在问题及改进探讨.doc
- 资产减值准则对公司盈余管理影响研究.doc
- 资产减值准则比较分析.doc
- 资产减值准则运用制约因素及对策.doc
- 资产减值在现行会计准则下应用研究.doc
- 资产减值问题会计学分析.doc
- 资产处置引发会计核心问题研究.doc
- 资产减值新准则应对策略.doc
- 资产定价行为金融方法.doc
- 山西天一大联考2025-2026学年高二上学期期末学情监测语文试题(试卷+解析).docx
- 山西忻州部分学校2025-2026学年高一上学期2月质量检测数学试题(人教B版)(试卷+解析).docx
- 山西运城市2025-2026学年高二第一学期期末调研测试数学试题(试卷+解析).docx
- 陕西省榆林市榆阳区2025-2026学年八年级上学期期末地理试题(试卷+解析).docx
- 陕西西安市碑林区2025-2026学年度第一学期期末八年级生物试题(试卷+解析).docx
- 四川省广元市苍溪县2025-2026年八年级上学期期末道德与法治试题(试卷+解析).docx
- 江苏泰州市姜堰区2025-2026学年七年级上学期1月期末数学试题(试卷+解析).docx
- 江苏省扬州市邗江区2025-2026学年九年级上学期期末考试化学试题(试卷+解析).docx
- 江西上饶市铅山县2025-2026学年第一学期期末考试八年级数学试题(试卷+解析).docx
- 江苏扬州市高邮市2025-2026学年度第一学期期末学业质量监测试题九年级英语(试卷+解析).docx
最近下载
- PC-CE轮机长循环检验报告模板.doc VIP
- 杨涟人物研究——以《杨忠烈公文集》为中心.docx VIP
- 《工业机器人技术基础》考试试卷练习题附答案.pdf VIP
- 金通灵公司财务舞弊案例分析.docx VIP
- 交通事故调取资料申请书.docx VIP
- 2024《幼儿园大班音乐游戏活动现状研究—以S区幼儿园为例》7700字.docx VIP
- 拉夫劳伦Ralph-Lauren专题研究报告.pdf VIP
- 毕业论文-特高压导线及1035KV电缆车间施工组织设计.doc VIP
- 汽车智库-陕汽集团专题分析报告.pdf VIP
- 2025年北京昌平区事业单位公开招聘笔试备考题库及答案详解一套.docx VIP
原创力文档

文档评论(0)