第五章 树与二叉树 五、哈夫曼树(定义与构造方法),哈夫曼编码

news2024/11/18 10:26:14

一、带权路径长度

1.结点的权:有某种现实含义的数值(如:表示结点的重要性等)

2.结点的带权路径长度:从树的根到该结点的路径长度(经过的边数)与该结点上权值的乘积。

3.树的带权路径长度:树中所有叶结点的带权路径长度之和。(WPL)

二、例子

1.

所有叶子节点的带权路径之和

WPL=(1*2)+(3*2)+(4*2)+(5*2)= 26

2.

WPL=(5*1)+(4*2)+(3*3)+(1*3)= 25

定义:我们知道,每个二叉树都可以有多种不同的表示方法,其中,在含有n个带权叶结点的二叉树中,其中带权路径长度(WPL))最小的二叉树称为哈夫曼树,也称最优二叉树。

三、哈夫曼树的构造

描述:

1)将这n个结点分别作为n棵仅含一个结点的二叉树,构成森林F

2)构造一个新结点,从F中选取两棵根结点权值最小的树作为新结点的左、右子树,开且将新结点的权值置为左、右子树上根结点的权值之和。

3)从F中删除刚才选出的两棵树,同时将新得到的树加入F中。

4)重复步骤2)和3),直至F中只剩下一棵树为止。

例子:假设我们有如下几个结点

1.我们找出两个根权值之和最小的结点进行结合,也就是a,c,把它们的权相加,形成新的结点。

3.再次找两个根权值之和最小的相加

4.反复这个过程(n-1次)n为原始结点数,最终得到

WPL=7+6+6+4+8=31

1)每个初始结点最终都成为叶结点,且权值越小的结点到根结点的路径长度越大。

2)哈夫曼树的结点总数为2n -1。

3)哈夫曼树中不存在度为1的结点。

4)哈夫曼树并不唯一,但WPL必然相同且为最优。


四、哈夫曼编码

固定长度编码――每个字符用相等长度的二进制位表示

可变长度编码――允许对不同字符用不等长的二进制位表示

若没有一个编码是另一个编码的前缀,则称这样的编码为前缀编码
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/956367.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

740914L、740928LD、740912D插头式比例控制线圈放大器

740912、740912D、740912L、740912LD 740914、740914D、740914L、740914LD 740924、740924D、740924L、740924LD 740928、740928D、740928L、740928LD 770212、770214、770214N、770223 一般情况下选用的线圈,在工作的工程中,一般是不可能发生问题的…

关于PMP!被问到发疯的10个问题!!

最近很多人都在问我PMP证书相关的几个问题,我大致整理出来,统一回答。 1)这是个什么证书?2)到底有什么用?3)考下来需要多少钱?4)能不能不报班自己学?5&#…

【HarmonyOS】一文教你如何使用低代码平台网格布局动态加载数据

【关键字】 低代码平台、AGC、API6、网格布局、数据模型 【写在前面】 正式开工之前,先来说一下今天要实现的内容,今天会实现一个网格布局的展示,我会创建一个数据模型,然后网格列表的数据从数据模型中获取,从而实现…

固定资产管理措施怎么写

固定资产管理措施是指企业在进行固定资产管理时所采取的各种措施和方法。以下是一些常见的固定资产管理措施:  建立完善的固定资产管理制度。制定明确的资产采购、使用、维护、报废等流程和标准,确保资产管理的规范性和透明度。  采用先进的资产管理…

在 .NET 8 Preview 7 中推出 .NET MAUI:键盘加速键

作者:David Ortinau 排版:Alan Wang .NET MAUI 现已在 .NET 8 Preview 7 中推出,它引入了键盘加速键以及更多的修复和改进。这是我们发布 .NET 8 候选版本和正式发布(GA)版本之前的最后一个预览版本。随着发布日期的公…

六、DataGrip的基础使用

创建新数据库 1、点击MySQL图标,右键点击新建,然后选择框架(数据库) 2、输入数据库名称: 此处schema代表框架,和database(数据库)是同一性质的东西。 创建新的表 1、右键点击数据库,点击新建,再点击表 2…

设计模式-装饰模式

文章目录 一、简介二、基本概念三、装饰模式的结构和实现类图解析:装饰器的实现方式继承实现:组合实现:继承和组合对比 四、装饰模式的应用场景五、与其他模式的关系六、总结 一、简介 装饰模式是一种结构型设计模式,它允许动态地…

黑客常用的10大工具介绍

黑客技术一度被认为是一个神秘的特有领域,随着技术的进步和领域环境的进步,它已经成为一种非常普遍的现象。黑客技术可以用于有害目的,也可以用于发现系统中的漏洞,并通知系统属主,帮助他们更好地保护系统。 借助于一些…

【【萌新的STM32学习--24 USART的部分介绍】】

萌新的STM32学习–24 USART的部分介绍 STM32的USART的介绍 USART 英文解释是 通用同步异步收发器 UART 通用异步收发器 USART/UART 都可以与外部设备进行全双工异步通信 USART 我们常用的也是异步通信 USART 主要特征 1.全双工异步通信 2.单线半双工通信 3.单独的发送器和接…

股市里面怎么加杠杆?买股加杠杆如何应对市场波动与风险?

股市里面怎么加杠杆?买股加杠杆如何应对市场波动与风险?首先,让我们讨论如何在股市中加杠杆。主要有一下两种方式: 1. 通过杠杆交易平台:许多券商和金融机构提供杠杆交易平台。 2. 通过杠杆型交易基金:杠…

在QGIS中手动输入坐标文本添加点状矢量要素的一种方法

目录 一、前言 二、应用场景 三、实现思路 四、实验过程 1、创建一个临时矢量图层 2、给矢量图层新增要素 3、给新增要素的几何图形赋值 4、查看要素的几何图形 五、实验总结 一、前言 本文主要为QGIS点状矢量数据编辑方面的内容,不涉及编程方面。我们知道大…

一文了解性能测试常见的指标

一、什么是性能测试 性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。 我们可以认为性能测试是:通过在测试环境下对系统或构件的性能进行探测,用以验证在生产环境下系统性能是否达到预估的性能需求…

Vue3列表竖向滚动(包含使用swiper的翻页效果)

一、使用element-plus表格进行滚动&#xff1a; 可以满足的需求&#xff1a;表格一行一行竖向滚动&#xff0c;类似走马灯。 不能满足的需求&#xff1a;表格分页竖向滚动&#xff0c;有翻页的效果。 代码&#xff1a; <template><el-table:data"tableData"…

【LeetCode-中等题】236. 二叉树的最近公共祖先

文章目录 题目方法一&#xff1a;后序遍历 回溯 题目 方法一&#xff1a;后序遍历 回溯 解题的核心就是&#xff1a;采用后序遍历 讨论p&#xff0c;q是否在当前的root的两边&#xff0c;如在两边则返回当前节点root 如何不在两边&#xff0c;只要出现一个节点等于p或者q就…

怎么让模糊的图片变清晰?试试这几招吧

有时候我们自己拍摄的照片或者是从网上下载的壁纸、头像背景等&#xff0c;应用的时候觉得这个画质怎么这么模糊&#xff0c;这种图片模糊的情况应该怎么办呐&#xff1f;其实借助专业有效的修复工具&#xff0c;我们就可以快速将模糊的图片变清晰了&#xff0c;今天就给大家介…

YOLO目标检测——人脸属性识别数据集下载分享

人脸多种属性、关键点标注数据集&#xff0c;包含了10000张脸&#xff0c;其中7500用于训练&#xff0c;2500张用于测试&#xff0c;共98个关键点。除了关键点之外&#xff0c;还有遮挡&#xff0c;姿态&#xff0c;妆容&#xff0c;光照&#xff0c; 模糊和表情等多种属性信息…

【LeetCode算法系列题解】第16~20题

CONTENTS LeetCode 16. 最接近的三数之和&#xff08;中等&#xff09;LeetCode 17. 电话号码的字母组合&#xff08;中等&#xff09;LeetCode 18. 四数之和&#xff08;中等&#xff09;LeetCode 19. 删除链表的倒数第N个节点&#xff08;中等&#xff09;LeetCode 20. 有效的…

java八股文面试[多线程]——Happens-Before规则

TODO 知识来源&#xff1a; 【23版面试突击】你知道什么是 happens-before 原则吗&#xff1f;_哔哩哔哩_bilibili 【2023年面试】Happens-Before规则是什么_哔哩哔哩_bilibili

优维×国信共研:双态交付助力国信证券持续交付更上层楼!

传统持续交付模式束缚&#xff0c;国信证券开启自主研发之路 在日益复杂的业务环境下&#xff0c;传统持续交付模式已经无法满足快速变化的需求。国信证券积极应对这一挑战&#xff0c;勇敢创新&#xff0c;突破交付瓶颈&#xff0c;实现了双态应用的持续交付新高度。 共研优…

任意文件读取

文章目录 渗透测试漏洞原理任意文件读取1. 任意文件读取概述1.1 漏洞成因1.2 漏洞危害1.3 漏洞分类1.4 任意文件读取1.4.1 文件读取1.4.2 任意文件读取1.4.3 权限问题 1.5 任意文件下载1.5.1 一般情况1.5.2 PHP实现1.5.3 任意文件下载 2. 任意文件读取攻防2.1 路径过滤2.1.1 过…