当前位置: 首页 > article >正文

【恋上数据结构】哈夫曼树学习笔记

哈夫曼树

哈夫曼编码(Huffman Coding)

哈夫曼编码,又称为霍夫曼编码,它是现代压缩算法的基础

假设要把字符串 [ABBBCCCCCCCCDDDDDDEE] 转成二进制编码进行传输。

可以转成 ASCII 编码 (6569,10000011000101) ,但是有点冗长,如果希望编码更短呢?

可以先约定好字符串中的 5 个字母对应的二进制,如下所示

在这里插入图片描述

如果使用哈夫曼编码,可以压缩至 41 个二进制位,约为原来长度的 68.3%

哈夫曼树

在这里插入图片描述

构建哈夫曼树

在这里插入图片描述

构建哈夫曼编码

如何求得 5 个字母对应的哈夫曼编码?

  • 从根节点开始,以 left 为 0,right 为 1 开始往下一个节点一个节点的数,即可得出。

ght 为 1 开始往下一个节点一个节点的数,即可得出。

在这里插入图片描述


http://www.kler.cn/a/156561.html

相关文章:

  • 2024 年(第 7 届)“泰迪杯”数据分析技能赛B 题 特殊医学用途配方食品数据分析 完整代码 结果 可视化分享
  • 在 CentOS 系统中,您可以使用多种工具来查看网络速度和流量
  • uni-app之数据驱动的picker选择器( uni-data-picker)之可以选择到任意级别
  • vue面试题7|[2024-11-14]
  • Dockerfile的使用
  • 【OH】openHarmony开发环境搭建(基于windows子系统WSL)
  • 全新仿某度文库网站源码/在线文库源码/文档分享平台网站源码/仿某度文库PHP源码
  • 在java中如何解决in unnamed module @0x602ff1d9得问题
  • vGPU_unlock实现消费级显卡虚拟化
  • 分享76个节日PPT,总有一款适合您
  • n皇后问题的最优解及优化
  • 国内的几款强大的AI智能—AI语言模型
  • ES6 generator Symbol yield
  • SpringBoot application.yml配置文件写法
  • homeassistant 随笔
  • java开发之个微机器人的实现
  • 面试题:MySQL为什么选择B+树作为索引结构
  • 135. 分发糖果
  • Linux结束程序运行的命令
  • GPIO的使用--存储系统与位带操作理解
  • 免费AI洗稿软件【2023最新】
  • 【JavaEE】多线程 (2) --线程安全
  • Elasticsearch 相似度评分模型介绍
  • JVM 运行时内存篇
  • ubuntu使用SSH服务远程登录另一台设备
  • 并发编程笔记