如何构造哈夫曼树

news2024/9/24 19:15:00

目录

一、哈夫曼树的概念 

 1、结点的权:

 2、结点的带权路径长度

3、树的带权路径长度

4、哈夫曼树 

 二、哈夫曼树的构造     

1、构造步骤

 三、哈夫曼树的编码


一、哈夫曼树的概念 

        1、结点的权:

              定义:  每个结点的权重(重要性)

        如上图:假设每个结点权重都是数字,那么每个数字代表的就是这个结点的权重

 2、结点的带权路径长度

        定义:是指从根节点出发一直到该节点的分支数目乘以权重 

如下图:

上图计算了权重为2和4的带权路径长度,分别为6和8

3、树的带权路径长度

        定义:从根结点出发一直到所有的叶子结点的分支数目乘以该叶子结点的权重之和,称为“树的带权路径长度”

        这颗树的带权路径长度就为34;

        计算方法是:每个叶子结点到根节点的路径数目*权重 之和

4、哈夫曼树 

        定义:树的带权路径长度最小的树,称之为“哈夫曼树”,也称为“最优二叉树”,应用:编码(哈夫曼编码)问题

        假如现在有很多个结点,我们用这些结点构造了很多个二叉树,这些二叉树的带权路径长度最小的,就是我们说的哈夫曼树,也叫“最优二叉树”

 二、哈夫曼树的构造     

        (1)创建n个具有一个结点的二叉树,n个具有一个结点的二叉树就构成了深林T={T1,T2,T3,.......................}

        (2)在深林T中取出两个权重最小的二叉树组成一个新的二叉树(两个二叉树的权重相加称为新的二叉树的权重),将新的二叉树放入深林中

        (3)重复第(2)步,直到最终构成的一棵树,就成为“哈夫曼树”

         如果单纯看概念,其实很难看懂;

1、构造步骤

下面是一些结点:

        第一步:从这些结点中找到权重最小的结点,组成一个树。组成树的根的权重值是两个子树权重值的相加

        第二步:重复第一步

        

        最终得到哈夫曼树如下图:树的权重=28

        当然还有另外的构造方法:将权重最小的两个组成一个树,再把剩下的权重最小的两个结点组成一个树 ,两个树的根组成一个新的树,依此类推,直到没有结点

        如下图:树的权重:28

 哈夫曼树特点:

        离根结点越近,结点的权重越大

        离根结点越远,结点的权重越小

        结点的度没有为1的情况,结点的度要么是2要么是0

 三、哈夫曼树的编码

        编码方式:

将哈夫曼树中的结点的左分支编码为0,将结点的右分支编码为1

 

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

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

相关文章

fork入门

1哪个分支会打印 如下是fork的典型问题。fork之后有3个分支,分别是pid等于0,pid大于0,pid小于0。如果我们不了解fork的话,那么肯定会认为这里的if else分支只会有一个分支被执行。而实际的执行结果是两个分支都执行了。fork返回之…

客流预测 | 基于Transformer下车站点客流推断研究(Matlab)

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 基于Transformer的车站客流推断研究是指利用Transformer模型来预测车站的客流情况。Transformer是一种强大的深度学习模型,特别擅长处理序列数据。研究可以为城市交通管理提供重要决策支持,帮…

恢复丢失的数据:iPhone 恢复指南

不小心删除了 iPhone 上的重要数据并意识到它没有备份?您并不孤单。在 iPhone 上恢复永久删除的数据似乎令人生畏,但并非总是不可能。我们将探索各种方法,包括使用专门的软件和备份恢复选项,为您提供恢复丢失数据的最佳机会。 常见…

裸机:LCD

什么是LCD? LCD,全称为Liquid Crystal Display,即液晶显示屏,是一种利用液晶物质的光学特性,通过控制电场来改变光的透过性,从而实现图像显示的技术。以下是关于LCD的详细解释: 一、LCD的基本…

ElementPlus实现页面,上部分是表单,下部分是表格

效果 <template><el-dialog v-model"produceDialogFormVisible" draggable custom-class"dialog-title" :title"title" :close-on-click-modal"false"><el-form label-width"120px"><el-row :gutter&q…

【STM32H743】将全局变量定义到指定内存MDK

STM32H743将全局变量定义到指定内存MDK 2024年8月31日 #elecEngeneer 上链 参考硬汉嵌入式。 这样Target里面的设置就作废了。 把H743的几个SRAM写上 ; ************************************************************* ; *** Scatter-Loading Description File generated by…

5G智慧工地项目汇报方案

1. 项目概述 5G智慧工地项目旨在通过5G技术提升建筑工地的通信、安防、质量管理和精益化管理水平&#xff0c;打造科技感十足的“5G智慧建造体验中心”。 2. 智慧工地需求 当前智慧工地需求集中在实时化、可视化、多元化、智慧化和便捷化&#xff0c;以满足全时段安全管理和…

《机器学习》周志华-CH4(决策树)

4.1基本流程 决策树是一类常见的机器学习方法&#xff0c;又称“判别树”&#xff0c;决策过程最终结论对应了我们所希望的判定结果。 一棵决策树 { 一个根结点 包含样本全集 若干个内部结点 对应属性测试&#xff0c;每个结点包含的样本集合根据属性测试结果划分到子结点中 若…

基于ssm+vue的汽车租赁管理系统

摘要 随着移动应用技术的发展&#xff0c;越来越多的用户借助于移动手机、电脑完成生活中的事务&#xff0c;许多的传统行业也更加重视与互联网的结合&#xff0c;以提高商家知名度和寻求更高的经济利益。针对传统汽车租赁系统&#xff0c;租赁信息、续租信息等问题&#xff0c…

第4章-07-将WebDriver获取的Cookie传递给Requests

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年CSDN全站百大博主。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 🏆本文已收录于专栏:Web爬虫入门与实战精讲,后续完整更新内容如下。 文章…

linux下基本指令(持续更新)

目录 1.adduser 2.passwd 3.userdel 4. su - 5.ls 6.pwd ​编辑 7.cd 8.touch 9.mkdir &#x1f680; 10. rmdir && rm &#x1f680; 11.whoami &#xff08;who am i) 12.clear 13.tree (需要安装 yum install -y tree) 14.who 1.adduser 语法&…

TCP协议(1)

目录 一、TCP协议介绍 二、TCP协议格式 2.1、解包与分用 2.2、TCP的可靠性 2.3、TCP的工作模式 2.4、确认应答(ACK)机制 2.5、32位序号与确认序号 2.6 16位窗口大小 2.7 六个标志位 2.7.1、SYN 2.7.2、FIN 2.7.3、ACK 2.7.4、PSH 2.7.5、URG 2.7.6、RST 2.8、T…

Arco Voucher - 不知道有什么用的凭证单据录入表单插件

关于 Arco Voucher Arco Voucher 插件是一款不知道有什么用的凭证单据录入表单插件&#xff0c;可能只是为了看着像传统的凭证单据。 动态表头 附件上传/预览 添加凭证明细 https://apps.odoo.com/apps/modules/browse?authorzerone40 如有插件定制化需求或其他插件资源…

MATLAB智能优化算法-学习笔记(2)——变邻域搜索算法求解旅行商问题【过程+代码】

旅行商问题 (TSP) 旅行商问题(Traveling Salesman Problem, TSP)是经典的组合优化问题之一。问题的描述是:给定若干个城市以及每对城市之间的距离,一个旅行商需要从某个城市出发,访问每个城市恰好一次,最后回到出发城市,目标是找到一条总距离最短的环路。TSP 是 NP-har…

通用 PDF OCR 到 Word API 数据接口

通用 PDF OCR 到 Word API 数据接口 文件处理&#xff0c;OCR&#xff0c;PDF 高可用图像识别引擎&#xff0c;基于机器学习&#xff0c;超精准识别率。 1. 产品功能 通用识别接口&#xff1b;支持中英文等多语言字符混合识别&#xff1b;formdata 格式 PDF 文件流传参&#xf…

MySql执行计划(Explain关键字详解)

文章目录 预备知识学习本内容的前提必须了解1.什么是Explain?2.如何使用Explain?3.explain字段详解3.1、ID字段(情况1)、id值不同:(情况2)、id值相同:(情况3)、id列为null:(情况4)、子查询优化后3.2、select_type字段:表示那个是主要的查询1.simmple:2.primary:3.derived:…

WeStorm(没有指向JVM)

##一直困扰了好久&#xff0c;之前打开IDEA会弹出这个&#xff1a; 然后重启IDEA就没弹出来了。但是的但是&#xff0c;最近打开WebStorm也弹出来这个&#xff0c;重启也解决不了&#xff0c;一开始以为是JDK的问题&#xff0c;但是检查了好几遍&#xff0c;发现都没问题&…

沉浸式体验Stability AI文生图、图生图、图片PS功能(中篇)

今天小李哥就来介绍亚马逊云科技推出的国际前沿人工智能模型平台Amazon Bedrock上的Stability Diffusion模型开发生成式AI图像生成应用&#xff01;本系列共有3篇&#xff0c;在上篇中我们学习了如何在亚马逊云科技控制台上体验该模型的每个特色功能&#xff0c;如文生图、图生…

Vue setup语法糖

未使用setup语法糖 <script lang"ts">export default {name: "App",setup() {let name "张三"let age 20function handleClick() {age 1}return {name,age,handleClick,}}} </script><template><div class"class&…

基于django+vue+uniapp的摄影竞赛小程序

开发语言&#xff1a;Python框架&#xff1a;djangouniappPython版本&#xff1a;python3.7.7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 管理员登录 管理员主界面 教师管理 学…