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

摘要

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

一、带权路径长度

二、哈夫曼树的定义

三、哈夫曼树的构造


四、哈夫曼编码

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


五、总结

相关推荐
David猪大卫2 小时前
【C++修炼】STL容器—stack与queue
c语言·开发语言·数据结构·c++·经验分享·笔记·学习
瑶池酒剑仙2 小时前
C++变量初始化五法完全指南:默认/拷贝/直接/列表/值初始化与窄化转换陷阱(青云之志)
c语言·开发语言·数据结构·c++·算法·visual studio
秋天的怀念_David3 小时前
听故事学语言 · 数据结构篇 · 序章一 算法之问
数据结构·程序人生·算法
-dzk-4 小时前
【链表】LC 25.K 个一组翻转链表
数据结构·链表
careathers5 小时前
【数据结构】基于比较的排序算法 - 插入排序
java·数据结构·排序算法
MicrosoftCloud5 小时前
数据结构 07(上)|查找:顺序、折半、分块,ASL 到底怎么
数据结构·查找·顺序查找·折半查找·分块查找·平均查找长度·asl
Mortalbreeze5 小时前
0 - 1 BFS 算法详解:从基本原理到经典题目建模
数据结构·c++·算法·图论·宽度优先
shehuiyuelaiyuehao19 小时前
算法56,重排链表
数据结构·算法·链表
suhan21 小时前
【数据结构】七、查找:1.查找的概念、线性结构查找(顺序、折半(二分)、插值、稠密、分块、倒排)
数据结构·算法·排序算法
极客 - L U21 小时前
卡尔曼滤波从零到精通
c语言·数据结构·单片机·嵌入式硬件·mcu