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

news2024/10/3 22:14:37
根结点:非空树中无前驱节点的结点
结点度:结点拥有的子树数或子节点数或后继节点数
树的度:树内各结点的度的最大值
叶子:终端节点,度为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.coloradmin.cn/o/1670112.html

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

相关文章

蓝牙小车的具体实现

title: 蓝牙小车开发时的一些细节 cover: >- https://tse1-mm.cn.bing.net/th/id/OIP-C.BrSgB91U1MPHGyaaZEqcbwHaEo?w273&h180&c7&r0&o5&dpr1.3&pid1.7 abbrlink: 842d5faf date: tags: #小车基本运动之最重要的—PWM ##1.PWM(Pulse …

关于Acrel-1000DP光伏监控系统的案例分析-安科瑞 蒋静

摘要:随着全球对可再生能源的需求不断增长,太阳能作为一种清洁、可持续的能源技术,得到了越来越广泛的应用。本项目通过在屋顶安装光伏组件,将太阳能转化为电能,然后通过逆变器将直流电转换为交流电,将电能…

振弦式表面应变计怎么安装

振弦式表面应变计是一种用于测量结构表面应变的高精度传感器,广泛应用于工程和科研领域。正确安装振弦式表面应变计对于确保测量结果的准确性至关重要。以下是安装振弦式表面应变计的步骤和注意事项: 1. 准备工作 在开始安装前,需要准备以下工…

【Linux】磁盘文件

思维导图 学习目标 了解磁盘的物理结构和存储结构,并将其存储结构进行抽象!! 一、了解一下磁盘及其物理结构 1.1 计算机只认识二进制 什么是二进制??0,1是被规定出来的,在计算机里面我们用高低…

巩固学习6

正则表达式 又称规则表达式,Regular Expression,在代码中常简写为regex、regexp或RE),是一种文本模式,包括普通字符(例如,a到z之间的字母)和特殊字符(称为“元字符”&…

革新机器人任务规划:TREE-PLANNER引领高效、准确的机器人动作生成新趋势

DeepVisionary 每日深度学习前沿科技推送&顶会论文分享,与你一起了解前沿深度学习信息! 引言 任务规划在机器人技术中扮演着至关重要的角色。它涉及到为机器人设计一系列中级动作(技能),使其能够完成复杂的高级任…

Scratch四级:第08讲 排序算法

第08讲 排序算法 教练:老马的程序人生 微信:ProgrammingAssistant 博客:https://lsgogroup.blog.csdn.net/ 讲课目录 常考的排序算法项目制作:“三个数排序”项目制作:“成绩查询”项目制作:“排序”项目制…

微信小程序发送订阅消息sendMessage

微信小程序发送订阅消息sendMessage 请注意订阅消息一次性订阅只只能授权一次接受一条消息多次授权会累加接受次数,wx.requestSubscribeMessage调用授权 目前长期性订阅消息仅向政务民生、医疗、交通、金融、教育等线下公共服务开放 //授权弹框,只弹出…

【Redis7】10大数据类型之Stream类型

文章目录 1. Stream简介2. 生产消息命令(XADD)3. 查询相关命令3.1 获取指定范围内的消息(XRANGE)3.2 逆序获取指定范围内的消息(XREVRANGE)3.3 返回消息的数量(XLEN) 4. 删除消息命令(XDEL)5. 截取消息命令(XTRIM)6. 消费消息命令(XREAD)7. 消费者组管理命令7.1 创建消费者组(X…

给centos机器打个样格式化挂载磁盘(新机器)

文章目录 一、先安装lvm2二、观察磁盘三、磁盘分区四、建PV五、建VG六、创建LV七、在LV上创建文件系统八、挂载到/home(1)临时挂载(2)永久挂载 九、最后reboot一下 一、先安装lvm2 yum install lvm2二、观察磁盘 三、磁盘分区 四…

Springboot + xxlJob注意事项

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

如何防止公司内部人员有意或无意的把内部核心文件资料泄露,拷贝,打印,上传,社交工具等途径外泄?

防止公司内部人员有意或无意泄露核心文件资料,需要采取一系列综合性的管理和技术措施。 以下是一些有效的策略: 加强员工意识教育:定期举办信息安全培训,提高员工对数据保护的意识,让员工了解数据泄露的风险和后果&…

冯喜运:5.13黄金原油震荡整理是涨还是跌?今日走势分析

【黄金消息面分析】;自5月初以来,黄金和白银一直在享受需求的回归,买家在过去几天加大了力度,一度推动金价重返2370美元上方,白银重返28.5美元上方。不过,经过几天的盘整后,黄金白银价格双双下跌。然而&…

leetcode经典例题之环形队列

P. S.:以下代码均在VS2019环境下测试,不代表所有编译器均可通过。 P. S.:测试代码均未展示头文件stdio.h的声明,使用时请自行添加。 目录 1、题目展示2、问题分析3、完整代码展示4、结语 1、题目展示 在拿到题目时,通…

SSH常用功能介绍-高级功能

一、介绍 SSH(Secure Shell)是一种用于远程登录和执行命令的网络协议,它提供了加密的连接,保证了数据的安全性。除了基本的远程登录功能外,SSH还提供了许多高级功能,以下是一些常用的高级功能介绍&#xf…

26版SPSS操作教程(高级教程第二十章)

目录 前言 粉丝及官方意见说明 第二十章一些学习笔记 第二十章一些操作方法 神经网络与支持向量机 人工神经网络(artificial neural network,ANN) 假设数据 具体操作 结果解释 对案例的进一步分析 结果解释 ​编辑 尝试将模型复…

mmdetection在训练自己数据集时候 报错‘ValueError: need at least one array to concatenate’

问题: mmdetection在训练自己数据集时候 报错‘ValueError: need at least one array to concatenate’ 解决方法: 需要修改数据集加载的代码文件,数据集文件在路径configs/base/datasets/coco_detection.py里面,需要增加meta…

水经微图万能版、专业版与企业版的区别?

水经微图(以下简称“微图”)的版本,主要分为万能版、专业版和企业版三个版本。 什么是万能版? 万能版是指“水经注万能地图下载器”软件功能的授权,虽然该软件已经停止更新,但购买过该软件的用户&#xf…

简单的DbUtils工具类【精细】

目录 单条通用增删改方法 1.创建maven项目,并加载依赖 2.创建数据库连接工具类(Dbutils类) 3.创建一个执行器(SqlExecutor类) 4.通用(增,删,改)方法 1.创建方法 2.创建userInfo实体类 3.创建测试类,测试增,删&#xf…

leetcode-最长公共子序列(二)-103

题目要求 思路 step 1:优先检查特殊情况。 step 2:获取最长公共子序列的长度可以使用动态规划,我们以dp[i][j]dp[i][j]dp[i][j]表示在s1中以iii结尾,s2中以jjj结尾的字符串的最长公共子序列长度。 step 3:遍历两个字…