数据结构----哈夫曼树

这里写目录标题

基本概念

引子



哈夫曼树就是寻找构造最优二叉树,用于提高效率

基本概念

各种路径长度


各种带权路径长度

结点的带权路径长度


树的带权路径长度

哈夫曼树

带权路径长度最短的树或者二叉树

也就是树的叶子结点带权路径长度之和 :也就是叶子结点的结点路径长度(根结点到叶子结点的路径数) *权重 再求和

总结:位高权重

并且哈夫曼树不唯一

哈夫曼树的构造

理论基础


构造思想

可以看到 先将所有结点看成根结点构造出森林 并将权重赋值给结点

之后 选择两个小权重的结点 二者构造出新树 如上图 新树根结点权重为子树结点权重之和

这时要先将森林中的两个树删除 之后 将两个树构造成的新树加入森林(为了进行下一次权重的比较 从而下一步构造的顺利进行)

重复23步 直到剩单根


度 是指结点有的子树个数

哈夫曼树结点的度只能是0或者2

n个叶子结点的哈夫曼树 一共有2n-1个结点 分析如上橙色框

总结

一级目录

二级目录

二级目录

二级目录

一级目录

二级目录

二级目录

二级目录

一级目录

二级目录

二级目录

二级目录

一级目录

二级目录

二级目录

二级目录

相关推荐
suhan8 小时前
【数据结构】六、图:4.图的遍历(深度优先算法DFS、广度优先算法BFS)
数据结构·算法·排序算法
suhan8 小时前
【数据结构】六、图:3.十字链表、邻接多重表、边集数组
数据结构·算法·排序算法
kiracrimson9 小时前
STL简单引入:把数据结构做成模板
开发语言·数据结构·c++
HPtiger9 小时前
交换类排序详解:冒泡排序与快速排序
数据结构·算法·排序算法
kyle~9 小时前
数据结构 --- 无锁队列(Lock-Free Queue)
linux·数据结构·c++·多线程·并发
Cccp.12310 小时前
【leetcode】(十四)从暴力递归到动态规划
数据结构·算法·leetcode·动态规划
凤凰院凶涛QAQ20 小时前
《Java版数据结构 & 集合类剖析》Map & Set & 反射:“从哈希碰撞到红黑树转换,反射帮你扒开 HashMap 的桶数组看个究竟”
java·数据结构·算法
H.莓飛20 小时前
【数据结构】排序_OJ题(一):计数、桶与排序后的处理
java·开发语言·数据结构
w_zero_one1 天前
算法--模拟
java·数据结构·算法
fish_zzzz1 天前
笔记-论数据结构1
数据结构