数据结构与算法分析:哈夫曼树_第1页
数据结构与算法分析:哈夫曼树_第2页
数据结构与算法分析:哈夫曼树_第3页
数据结构与算法分析:哈夫曼树_第4页
数据结构与算法分析:哈夫曼树_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

哈夫曼树

数据结构与算法1哈夫曼树与

哈夫曼编码

最优树的定义

如何构造最优树

前缀编码

2最优树的定义树的路径长度定义为:

树中每个结点的路径长度之和。

结点的路径长度定义为:

从根结点到该结点的路径上分支的数目。3

树的带权路径长度定义为:

树中所有叶子结点的带权路径长度之和

WPL(T)=wklk

(对所有叶子结点)。在所有含n个叶子结点、并带相同权值的m叉树中,必存在一棵其带权路径长度取最小值的树,称为“最优树”。例如:427975492WPL(T)=72+52+23+43+92=60WPL(T)=74+94+53+42+21=89545根据给定的n个权值{w1,w2,…,wn},构造n棵二叉树的集合

F={T1,T2,…,Tn},其中每棵二叉树中均只含一个带权值为wi

的根结点,其左、右子树为空树;二、如何构造最优树(1)(赫夫曼算法)以二叉树为例:6在F中选取其根结点的权值为最小的两棵二叉树,分别作为左、右子树构造一棵新的二叉树,并置这棵新的二叉树根结点的权值为其左、右子树根结点的权值之和;(2)7从F中删去这两棵树,同时加入刚生成的新树;重复(2)

和(3)

两步,直至F中只含一棵树为止。(3)(4)8建立HuffmanTree(1)9HuffmanTreeConstruction(2)10指的是,任何一个字符的编码都不是同一字符集中另一个字符的编码的前缀。前缀编码

利用赫夫曼树可以构造一种不等长的二进制编码,并且构造所得的赫夫曼编码是一种最优前缀编码,即使所传电文的总长度最短。11编码及其用法LetterFreqCodeBitsC321110D42101E1200F241111K7111101L42110U37100Z211110012编码与解码CodeforDEED:Decode1011001110111101:如果一组代码中的任何一个代码都不是另一个代码的前缀,则称这组代码符合前缀特性prefixproperty.每个字母预期的空间开销:带权路径长度定义为:树中所有叶子结点的带权路径长度之和

WPL(T)=wklk

(对所有叶子结点)。13要点回顾树ADT的设计,包括树节点ADT和树

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论