码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 哈夫曼树与哈夫曼编码


    哈夫曼树:结点中赋予一个某种意义的值,称为结点的权值,从根结点开始,到目标结点经过的边数,称为路径长度,路径长度乘以权值,称为带权路径长度;

    例如:根结点代表着快递集散点,一个叶子结点权值是5,在业务逻辑中代表着重量是5斤的货物📦,路径长度是3,业务逻辑代表着3公里,3 * 5 = 15 假设代表着从根结点开始配送这一件货物的成本 开销是15升汽油

    越重的物品,配送距离越长,开销越大,假设说每一层结点都有一个快递柜,只可以存放一件物品,这样就让收件人自己来取,而不用大老远送过去了,那么我们就应该优先把最重的物品,放在距离快递集散点(根结点)越近的位置。重量轻的(权值小的)小件物品我们可以送远一点。
    那么这个想法其实就是最短带权路径

    例:假设快递站今天收到了6件需要派送的物品,重量(斤)分别是 6,9,1,3,2,12
    如果快递员不懂巧妙利用最短带权路径,而是经过一个快递柜就按顺序把一件放进柜子,剩下的继续配送,那么构成的树就会是:
    在这里插入图片描述
    可以看到总耗费汽油109升。

    但是转念一想,既然都可以放菜鸟柜,我为什么不把重的提前放下车,省点汽油呢?于是第二天快递员就改变思路,形成下面的二叉树:
    在这里插入图片描述
    果然,第二天只消耗了75升汽油,成本大大节约了

    总结:综上所述,使得带权路径WPL最小的树,就称之为哈夫曼树。也可以称之为:最优二叉树

    例子:

    牢记哈夫曼树只有叶子结点能存放字符;同时哈夫曼树仅有度为0或者度为2的结点(因为是两两组合,不存在度为1)

    (1)一棵哈夫曼树共有215个结点,对其进行哈夫曼编码,共能得到(108)个不同的码字
    因为哈夫曼树只有叶子结点能存放码字
    根据二叉树的性质,最后一个非叶结点是:215 / 2 向下取整 = 107
    所以叶子结点就是:215 - 107 = 108
    所以,能存放108个不同的码字

    (2

  • 相关阅读:
    酷睿i9-13900K性能出炉Steam游戏开发首选驰网独家i9-13900K服务器水冷定制高主频游戏服务器
    顽固污渍一键去除,还有紫外线除菌功能,希亦超声波清洗机体验
    利用I/O多路复用系统调用select实现一个高效服务器模型
    【Linux operation 40】Linux中的Localhost
    聊聊自动化测试路上会遇到的挑战~
    hadoop宕机的处理方法
    FL Studio官方20.9中文版无需汉化补丁,正确安装并设置切换
    【Mybatis-Plus在SpringBoot项目中的使用(自动代码生成,太方便了!)】
    手机端预览pdf,兼容安卓iOS和pc端
    【数据结构】树与二叉树(十九):树的存储结构——左儿子右兄弟链接结构(树、森林与二叉树的转化)
  • 原文地址:https://blog.csdn.net/whiteBearClimb/article/details/127936568
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号