【数据结构-树与二叉树】4.7 哈夫曼树

摘要

哈夫曼树(Huffman Tree),又称最优二叉树,是一种带权路径长度(WPL)最小的二叉树,由 David A. Huffman 于 1952 年提出,核心是用贪心策略让权值大的节点离根更近,实现整体代价最优。

一、带权路径长度

二、哈夫曼树的定义

三、哈夫曼树的构造


四、哈夫曼编码

  • 背景:ABCD使用ASCII编码传输,使用的比特位太多,需要更简洁的方法进行传输
  • 解决办法:ABCD使用长度为2的二进制表示,并计算带权路径长度
  • 存在问题:WPL是200,想进一步压缩
  • 进一步压缩WPL:构建哈夫曼树,压缩到130bit
  • 固定长度编码VS可变长度编码


五、总结

相关推荐
星马梦缘7 小时前
aaaaa
数据结构·c++·算法
OpenApi.cc8 小时前
神经网络结构驱动+数据结构分析
数据结构·人工智能·神经网络
星恒随风9 小时前
C语言数据结构排序算法详解(下):冒泡排序、快速排序、归并排序和计数排序
c语言·数据结构·笔记·学习·排序算法
初夏睡觉10 小时前
数据结构学习之~二叉堆 (P3378 【模版】堆)
数据结构·c++·学习
云泽80811 小时前
笔试算法 - 链表篇(一):移除、反转、合并、回文判断全解析
数据结构·c++·算法·链表
也曾看到过繁星11 小时前
数据结构-复杂度
数据结构
菜菜的顾清寒11 小时前
HOT力扣100(43)二叉树-翻转二叉树
数据结构·算法·leetcode
Jasmine_llq12 小时前
《B3939 [GESP样题 四级] 绝对素数》
数据结构·算法·素数判断算法·数字拆分与反转算法·区间遍历枚举·双条件判断逻辑
郝学胜-神的一滴13 小时前
干货版《算法导论》07:递归视角下的选择排序与归并排序
java·数据结构·c++·python·程序人生·算法·排序算法
未若君雅裁14 小时前
算法复杂度与数据结构:Java 集合篇的第一块基石
java·数据结构·算法