树、森林——树与二叉树的应用(哈夫曼树的构造)

构造口诀

每次选两个权最小结点,合并出新父结点,重复直到只剩一个

详细步骤

把所有带权叶子结点看成一棵只有根的二叉树,构成森林

从森林中选出两个权值最小的树

新建一个父结点,权值 = 两结点权值之和

两棵小树分别作为新父结点左、右孩子

把新树放回森林

重复 2~5,直到森林只剩一棵树

这棵树就是哈夫曼树

关键规则

左右孩子没有严格顺序,所以哈夫曼树不唯一

合并出新结点一定是分支结点,不带原始权

哈夫曼树绝对没有度为 1 的结点

n 个叶子结点 → 总结点数 = 2n - 1

举例(权:1,2,3,4)

选 1、2 → 合并 3

森林:3、3、4

选 3、3 → 合并 6

森林:4、6

合并 4、6 → 10

最终哈夫曼树完成

考点

n 个叶子,分支结点 = n-1 个

总结点 = 2n-1

不存在度为 1 结点

WPL 唯一最小,树形不唯一

相关推荐
JavaWeb学起来6 分钟前
Python学习教程(六)数据结构List(列表)
数据结构·python·python基础·python教程
啊董dong3 小时前
noi-2026年5月12号小测验
数据结构·c++·算法
南境十里·墨染春水4 小时前
数据结构 —— 链表
数据结构·链表
图码5 小时前
二分查找进阶:如何在有序数组中快速找到Upper Bound?
数据结构·算法·面试·分类·柔性数组
Cthy_hy5 小时前
树状数组(BIT)进阶:差分优化实现区间修改、区间查询
数据结构·python·算法
代码中介商6 小时前
红黑树完全指南:从五条性质到完整插入删除实现
数据结构·算法
Sarvartha8 小时前
单链表的顺序建立与结点的删除(期末题复现)
数据结构
Dlrb12119 小时前
数据结构-链表
数据结构·链表·逻辑结构·单向链表·物理结构·valgrind工具
小的~~9 小时前
算法题:只出现一次的数字
数据结构·算法
一切皆是因缘际会10 小时前
从概率拟合到内生心智:七层投影架构重构AGI数字生命新范式
大数据·数据结构·人工智能·重构·架构·agi