哈夫曼树
来源:互联网 发布:js时间计算 编辑:程序博客网 时间:2024/06/05 17:29
(一)基础知识
路径:从一个结点到另一个结点之间的分支序列。
路径长度:从一个结点到另一个结点所经过的分支数目。
结点的权:根据应用的需要可以给树的结点赋权值
带权路径长度:从根到该结点的路径长度与该结点权的乘积。
树的带权路径长度: 树中所有叶子结点的带权路径之和。
哈夫曼树:由n个带权叶子结点构成的所有二叉树中带权路径长度最短的二叉树。又叫最优二叉树。
(二)有数据为{ 22,10,46,17,13,110,20,15,34 }试构造一棵哈夫曼(Huffman树),并计算WPL。
先从其中选出两个最小的节点10 ,13,由他们的和组成他们的父节点 23。
然后,将23放回中序列中。参与其他的节点筛选。
重复上面的过程则可以完成构造树的过程。
结果如下:(结果有多种,但是WPL值是统一的。)
WPL=110*1+34*3+22*4+20*4+46*3+10*5+13*5+15*5+17*5=793
(三)字符串“alibaba”用哈夫曼编码来编码,则共有多少位?
a有3个,b有2个,l、i分别有一个。
所以,a的权值为3,b的权值为2,l的权值为1,i的权值为1。
构造哈夫曼树的结果为:
编码结果:
每个字母对应的编码
a 0
b 10
l 110
i 111
则alibaba对应的编码,总共需要13位
a 0
l 110
i 111
b 10
a 0
b 10
a 0
(四)二叉树转化为树
(五)树转化为二叉树
阅读全文
0 0
- 哈夫曼树
- 哈夫曼树
- 哈夫曼树
- 哈夫曼树
- 哈夫曼树
- 哈夫曼树
- 哈夫曼树
- 哈夫曼树
- 哈夫曼树
- 哈夫曼树
- 哈夫曼树
- 哈夫曼树
- 哈夫曼树
- 哈夫曼树
- 哈夫曼树
- 哈夫曼树
- 哈夫曼树
- 哈夫曼树
- [leetcode]547. Friend Circles
- iic
- java线程池深入一
- Faster Rcnn源码阅读分析(TF+python版)
- 学习笔记_01生成对抗网络(GANs)
- 哈夫曼树
- linux poll函数的使用
- VS2017:头停止点需要位于全局范围。未生成 IntelliSense PCH 文件。错误处理
- for循环-c基础第六课
- 欧拉回路Fleury算法模板
- (3)写简单发布节点和订阅节点
- 剑指offer——连续子数组的最大和
- 中国剩余定理与扩展
- linux初学者-文件管理篇