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

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

哈夫曼树

哈夫曼编码(Huffman Coding)

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

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

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

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

在这里插入图片描述

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

哈夫曼树

在这里插入图片描述

构建哈夫曼树

在这里插入图片描述

构建哈夫曼编码

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

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

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

在这里插入图片描述

http://www.lryc.cn/news/252125.html

相关文章:

  • 前端下拉框select标签的插件——select2.js
  • 【MySQL的基本命令{DML 和 DDL}】
  • unity3d模型中缺失animation
  • 搭建自己的wiki知识库【转】
  • 【笔记】常用的Linux命令之解压缩:tar、zip、rar 命令
  • 谈谈MYSQL索引
  • 线程中出现异常的处理
  • 点击元素以外的事件监听
  • 猫头虎分享ubuntu20.04下VSCode无法输入中文解决方法
  • tcpdump使用心得
  • QJsonObject 是 Qt 框架中用于表示 JSON 对象的类
  • kafka3.6.0部署
  • MybatisPlus批量插入(伪批量),增强为真实批量插入
  • 【零基础入门Python】Python If Else流程控制
  • 新手零基础学习彩铅画,彩铅快速入门教程合集
  • 线程池的拒绝策略
  • Redis7--基础篇5(管道、发布订阅)
  • Unity中Shader指令优化(编译后指令解析)
  • 单个 Zip 文件体积超过 40GB
  • pandas 基础操作3
  • 开发知识点-Maven包管理工具
  • 104. 二叉树的最大深度
  • JAVA毕业设计113—基于Java+Springboot+Vue的体育馆预约系统(源代码+数据库+12000字论文)
  • 【自动化测试】pytest 用例执行中print日志实时输出
  • 【深度学习】KMeans中自动K值的确认方法
  • github问题解决(持续更新中)
  • 如何创建一个vue工程
  • 50 代码审计-PHP无框架项目SQL注入挖掘技巧
  • 基于Spring、SpringMVC、MyBatis的企业博客网站
  • spring日志输出到elasticsearch