哈夫曼树结构和带权路径长度计算
来源:互联网 发布:淘宝不能结算怎么回事 编辑:程序博客网 时间:2024/05/19 07:26
什么是哈夫曼树呢?
哈夫曼树是一种带权路径长度最短的二叉树,也称为最优二叉树。下面用一幅图来说明。
它们的带权路径长度分别为:
图a: WPL=5*2+7*2+2*2+13*2=54
图b: WPL=5*3+2*3+7*2+13*1=48
可见,图b的带权路径长度较小,我们可以证明图b就是哈夫曼树(也称为最优二叉树)。
哈夫曼树构建教程
例:对于给定的一组权值w={1,4,9,16,25,36,49,64,81,100},构造具有最小带权外部路径长度的扩充二叉树,并求出他的的带权外部路径长度。
解:1、首先我们对这一组数字进行排序。规则是从小到大排列(题目已排序好)。
2、在这些数中 选择两个最小的数字(哈夫曼树是从下往上排列的)写在纸上。如下图所示
3、用一个类似于树杈的“树枝”连接上两个最小的数。在顶点处计算出这两个数字的和 并写在上面。然后再比较剩下的数字和这个和的大小,再取出两个最小的数字进行排列
4、如上图中30,25的和为55,已经大于36,49.所以这个时候开始有分支,用36,49再构造一个分支,如下图。
5、最后将分支合并成一个二叉树,如下图
6、这样,二叉树结构就构建好了。
带权外部路径长度计算;
WPL=2*100 + 3*64 + 2*81 + 4*25 + 2*49 + 2*36 + 5*16 + 6*9 + 7*1 + 7*4 =993
(385的权重为0,216和166权重为1.....)
阅读全文
0 0
- 哈夫曼树结构和带权路径长度计算
- 解决关于哈夫曼编码计算带权路径长度问题
- 哈夫曼编码计算带权路径长度问题
- (哈夫曼树10.3.1)POJ 3253 Fence Repair(计算带权路径长度最小的哈夫曼树)
- 哈夫曼树 带权路径长度WPL
- 哈夫曼树的带权路径长度
- 求其带权路径长度
- 求哈夫曼树最小带权路径长度和代码
- C语言实现Huffman树并计算带权路径长度
- 求哈夫曼的带权路径长度
- 带权路径长度 hnust数据结构
- 带权路径长度 层次遍历
- 叶子结点带权路径长度和(先序遍历法和层序遍历法)
- 数据结构之哈夫曼树的构造以及对哈夫曼树求解带权最优外部路径长度
- 数组、结构体和共用体的长度计算?
- 哈夫曼树的基本操作,(树的建立,带权路径长度,哈夫曼编码)
- 【数据结构】求节点的哈夫曼的带权路径长度
- 优先队列解哈夫曼编码问题之带权路径长度
- cassandra的简单应用
- break、continue、return的区别
- sas中连接mysql数据库,中文乱码问题解决
- Net-snmp总结(四)-net-snmp的MIBs扩展_添加set
- mysql事务
- 哈夫曼树结构和带权路径长度计算
- HashMap
- 旋转数组的最小数字
- springMVC框架下返回json格式的对象,list,map
- websocket实现android消息推送
- RevitAPI: 注意Revit 2016事件注册和注销行为的改变
- MXNet 多rec参与训练
- MongoDb 将 BsonDocument 集合 转换为强类型 List
- groovy之list和map方法