数据结构-树概念基础知识

根结点:非空树中无前驱节点的结点
结点度:结点拥有的子树数或子节点数或后继节点数
树的度:树内各结点的度的最大值
叶子:终端节点,度为0
祖先:从根到该节点所经分支上的所有结点
子孙:以某结点为跟的子树中的任意节点
深度 (从上往下数)
树的深度:距离根结点最远的结点所处的最大层数即为树的深度。

下图中
树深度为5
A结点的深度为1(处在第1层)
G结点的深度为3(处在第3层)

高度(从下往上数)
树的高度:树的高度和树的深度相同,叶结点的高度为1,非叶结点的高度等于它的子女结点高度的最大值+1

G的高度为3、M高度为2,O的高度1
F的高度为1

注:节点的高度和深度是不同的。

总结:1.所有节点中,节点最大的度,即为树的度
           2.所有节点的深度/高度的最大值即为树的深度和高度
           


树的路径长度:指从根节点到每个节点的路径之和,或者是所有路径的长度的总和
节点路径长度:节点与节点之间的路径长度
所有节点的路径长度之和为树的路径长度

图中树的度为3:
树的所有结点=所有结点的度+1。
 区别一下2种情况
 总结点=所有结点的度之和+1
 总结点=所有度的节点数量之和。  度为0的结点+度为1的结点+度为2的节点+度为.n的结点
 


叶子节点=所有节点-非零度的节点个数。

二叉树性质
1.深度为K的二叉树至多有2的k次方-1个节点k>=1  ,至多实际指满二叉树的情况
深度为k时至少有k个结点。

2.在二叉树的第i层上至多有2的i-1次方个节点(i>=1)

一、二叉树性质:任何一个二叉树,如果叶子数为n。,度为2的节点数为n2,则n。= n2+1;


二、哈弗曼树概率
路径:从树中一个结点到另一个结点之间的分支构成这两个结点间的路径。
结点的路径长度:两结点间路径上的分支数。 
树的路径长度:从树根到每一个结点的路径长度之和
权:给树中结点赋一个有某种含义的数值,则这个数值称为该结点的权。
结点的带权路径长度:从根结点到该结点之间的路径长度与该结点的权的乘积
树的带权路径长度WPL:树中所有叶子结点的带权路径长度之和 
哈弗曼树:最优树 ,带权路径长度(WPL)最短的树
带权路径长度最短,是在度相同的树中比较而得出的结果,因此有最优二叉树,最优三叉树之称

满二叉树不一定是哈弗曼树
哈夫曼树中权越大的叶子离根越近
具有相同带权结点的哈弗曼树不唯一

三、哈弗曼树的构造算法
1.构造森林全是根
2.选用两小造新树
3.删除两小添新人
4.重复2、3

哈夫曼树的结点的度数为0或2,没有度为1的结点。

包含n个叶子结点的哈夫曼树中共有2n-1个结点

哈弗曼树总结:
1.在哈夫曼算法中,初始化时有n棵二叉树,要经过n-1次合并最终形成哈弗曼树。
2.经过n-1次合并产生n-1个新结点,且这n-1个新结点都是具有两个孩子的分支结点

四、哈夫曼树的构造算法实现

采用顺序存储结构------一维结构数组
结点类型定义

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

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

相关文章

Springboot + xxlJob注意事项

1. 部署 就是这个地址: https://gitee.com/xuxueli0323/xxl-job 由于xxl-job的思想是 调度中心负责调度任务,然后有执行器负责接受调度的信息,然后根据调度,执行任务中的具体逻辑 将 xl-job-admin 启动起来,操作xl-job-admin这个文件夹下的配置文件即可: 创建数据库 执行sql…

外面收费888的CR视频批量剪辑软件短视频去重搬运过豆+去水印批量【剪辑脚本+详细教程】

软件功能: 去水印 加水印 裁剪 画中画 去头尾 加头尾 变速 文本 背景音 画面调整 分辨率 虚化 宫格分屏 旋转 帧率 抽帧 动态缩放 码率调整 合并 分割 专场 镜像重置 补针 定帧 音频抽取 视频抽取 字幕 生成gif 静音移除 画面拼接 图转视频等等 不限制次数&#x…

AICloud 分论坛 07-AI原生数据库与RAG【文档管理】

https://github.com/infiniflow/infinityhttps://infiniflow.org/视频观看:https://www.bilibili.com/video/BV16m411y7xW/?spm_id_from333.999.0.0&vd_sourceae7b192be069682aabc96350ba419fc5 简介 为LLM应用程序构建的AI原生数据库,提供令人难…

自查判断海外IP地址的质量,方式有这些!

为了保障海外代理IP的使用感受,在我们购买海外IP地址后,可以对其可靠性和安全性进行自查,避免潜在问题的发生,保障网络体验。 我们可以根据一下方法来进行自查判断: IP黑名单检查:使用IP黑名单检查工具&am…

【年报文本分析】第五辑:Python+Pytorch训练大语言模型,使用自训练模型完成文本分类任务——金星晔等(2024)《经济研究》大语言模型方法的复现

目录 0 背景介绍1 环境及依赖库2 使用示例数据集,跑通大语言模型代码2.1 源代码下载2.2 代码的运行步骤3 更换预训练模型,寻找最优模型4 确定词典,筛选年报5 开始人工标注工作6 批量文本预测 0 背景介绍 金星晔老师等在《经济研究》2024年第…

十一、Redis持久化-RDB、AOF

Redis提供了两种持久化数据的方式。一种是RDB快照,另一种是AOF日志。RDB快照是一次全量备份,AOF日志是连续的增量备份。RDB快照是以二进制的方式存放Redis中的数据,在存储上比较紧凑;AOF日志记录的是对内存数据修改的指令文本记录…

AMEYA360代理品牌 | 海康存储产品介绍

海康存储成立于2017年,依托海康威视在视音频、成像采集与数据管理领域长达20年的技术沉淀和积累,聚焦工业控制、数据中心、视频监控、终端消费等应用场景,为企业客户及终端用户提供值得信赖的存储产品和解决方案。 目前,海康存储已…

我看看谁还不会AI模特试装!AI绘画电商系列保姆级教程(文末有福利)

不得不说,AI绘画在电商行业展现出了巨大的商业价值,就连专注电商的AI绘画工具都层出不穷。茉莉也试了不少AI商拍工具,主打「0门槛」「一键式」操作,但效果和自定义灵活性,根本比不上MidjourneyStable DIffusion这一王炸…

Comau柯马机器人维修故障分类

在柯马机器人的使用过程中,常见的是Comau机械手减速器故障。那么,我们一起来探讨一下柯马机械臂维修减速机故障的问题。Comau工业机械手减速器故障分类 1. 异响 机器人在工作过程中发出异常声响,可能是柯马机械臂减速器内部磨损或零件松动引起…

二分图及图匹配(图论学习总结部分内容)

文章目录 前言四、二分图及图匹配二分图常见模型二分图例题 e g 1 : eg1: eg1: [ Z J O I 2009 ZJOI2009 ZJOI2009​\][假期的宿舍](https://ac.nowcoder.com/acm/contest/34649/B)(二分图最大匹配板题) e g 2 : eg2: eg2:​​ [C-Going Home](https://ac.nowcoder.com/acm/con…

Compose容器编排示例

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 目录如下: 一、从源代码开始构建、部署和管理应用程序 1.1、创建项目目录并准备应用程序的代码及其依赖 1.2、创建Dockerfile 1.3、在…

电动汽车与 PLM:下一代转型的结合

汽车电气化是汽车行业持续变革的驱动力,因此电动汽车 (EV) 行业成为当今最令人兴奋、最相关和最必要的创新领域之一。快速且有利可图地设计电动汽车及其零部件,同时使其受到消费者的青睐,是一项艰巨的挑战。因此,电动汽车行业企业…

体验GM CHM Reader Pro,享受高效阅读

还在为CHM文档的阅读而烦恼吗?试试GM CHM Reader Pro for Mac吧!它拥有强大的功能和出色的性能,能够让你轻松打开和阅读CHM文件,享受高效、舒适的阅读体验。无论是学习、工作还是娱乐,GM CHM Reader Pro都能成为你的得…

python数据分析——数据分类汇总与统计

数据分类汇总与统计 前言一、Groupby分类统计语法按列分组示例一示例二示例三 遍历各分组示例 使用字典和Series分组示例 使用函数分组示例 二、数据聚合groupby的聚合函数示例一示例二 逐列及多函数应用示例一示例二 返回不含行索引的聚合数据示例 三、一般性的“拆分-应用-合…

数字展厅设计需要注意哪些细节

1、用户体验 数字展厅是为了让用户感受到更多的信息和更好的体验,所以设计数字展厅必须以用户体验为中心,从用户的角度考虑,设计出符合用户需求和品牌形象的数字展示空间。 2、展示内容 数字展厅的展示内容是吸引用户的关键,要注重…

(五)STM32F407 cubemx IIC驱动OLED(2)硬件篇

这篇文章主要是个人的学习经验,想分享出来供大家提供思路,如果其中有不足之处请批评指正哈。   废话不多说直接开始主题,本人是基于STM32F407VET6芯片,但是意在你看懂这篇文章后,不管是F1,F4,H7等一系列系统硬件IIC配…

Docker 基础认识

文章目录 概念铺垫(1)概念铺垫(2)概念铺垫 (3)概念铺垫(4)Docker 定义Docker 特点Docker 架构 概念铺垫(1) 虚拟化相关概念 物理机:实际的服务器…

WordPress 、Typecho 站点的 MySQL/MariaDB 数据库优化

今天明月给大家分享一下 WordPress 、Typecho 站点的 MySQL/MariaDB 数据库优化,无论你的站点采用是 WordPress 还是 Typecho,都要用到 MySQL/MariaDB 数据库,我们以 MySQL 为主(MariaDB 其实跟 MySQL 基本没啥大的区别&#xff0…

JUC下的Java java.util.concurrent.Locks详解

java.util.concurrent.locks 包介绍 java.util.concurrent.locks 包是Java并发编程中非常重要的一个部分,它提供了比内置synchronized关键字更为灵活的锁机制,用于多线程环境下的同步控制。这个包中最核心的是Lock接口,以及一系列实现类&…

如何通过香港站群服务器高效实现网站内容的快速更新?

如何通过香港站群服务器高效实现网站内容的快速更新? 在当今激烈的数字市场竞争中,网站内容的快速更新对于吸引用户和保持竞争优势至关重要。而利用香港站群服务器实现这一目标,则具备诸多优势。下面将详细探讨如何通过香港站群服务器高效实现网站内容…