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

摘要

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

一、带权路径长度

二、哈夫曼树的定义

三、哈夫曼树的构造


四、哈夫曼编码

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


五、总结

相关推荐
木木子2212 小时前
# 鸿蒙 ArkTS 实战:秒表 Stopwatch(示例 5)
数据结构·华为·list·harmonyos
geats人山人海12 小时前
数据结构第六章c语言 树的存储下二叉树的概念和存储
c语言·数据结构·算法
白狐_79814 小时前
408 数据结构算法题 01:线性表暴力求解保分指南
java·数据结构·算法
冻柠檬飞冰走茶14 小时前
PTA基础编程题目集 7-31 字符串循环左移(C语言实现)
c语言·开发语言·数据结构·算法
来一碗刘肉面15 小时前
树的存储结构
数据结构
GrowthDiary00716 小时前
算法题:寻找二维数组top k问题
数据结构·python·算法
SHARK_pssm16 小时前
【数据结构——栈】
数据结构
阿米亚波16 小时前
【C++ STL】std::unordered_multiset
开发语言·数据结构·c++·笔记·stl
-dzk-18 小时前
【链表】LC 160.相交链表
数据结构·链表
AKA__Zas18 小时前
芝士算法(前缀和2.0)
java·数据结构·算法·leetcode·哈希算法·学习方法