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

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

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

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

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

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

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


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

图中树的度为3:
树的所有结点=所有结点的度+1。
1. 根据所有节点的度+1,推出树的总结点
2.根据所有度的构成推树的所有节点


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

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

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


http://www.ppmy.cn/ops/35757.html

相关文章

Spring Boot中一般如何使用线程池?

在Spring Boot应用程序中,合理地使用线程池可以有效地提高系统的性能和并发处理能力。本文将深入探讨Spring Boot中如何一般性地使用线程池,包括线程池的配置、使用方式以及一些最佳实践。 1. 线程池的作用与好处 线程池是一种用于管理线程的机制&…

上位机开发PyQt5(二)【单行输入框、多行输入框、按钮的信号和槽】

目录 一、单行输入框QLineEdit QLineEdit的方法: 二、多行输入框QTextEdit QTextEdit的方法 三、按钮QPushButton 四、按钮的信号与槽 信号与槽简介: 信号和槽绑定: 使用PyQt的槽函数 一、单行输入框QLineEdit QLineEdit控件可以输入…

【Linux】详解信号的保存信号屏蔽字的设置

一、信号处理的一些常见概念 实际执行信号的处理动作称为信号递达(Delivery)。信号从产生到递达之间的状态,称为信号未决(Pending)。进程可以选择阻塞 (block )某个信号。被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才执行递达的动作。注意:阻…

瞪羚企业!2024年江夏区瞪羚企业认定申报对象、条件及申报时间

2024年江夏区瞪羚企业认定申报对象、条件及申报时间等内容如下,江夏区的企业单位可以了解一下,有什么疑问的地方名字找我。 一、支持对象 1、围绕江夏区“3311”(指“车、光、康”3个主导产业,新能源、智能物联、新材料3个新兴产业&#xf…

网站访问免费升级成 HTTPS——值得收藏

实现HTTPS协议可以分为四个主要步骤,以确保网站数据传输的安全性。以下是简明清晰的流程概述: 1. 申请SSL证书 - SSL证书是实现HTTPS的基础,它包含了网站的身份信息以及公钥等。首先,你需要从受信任的证书颁发机构(CA)申请一个SSL…

【计算机网络】第一章——计算机概述(中篇)

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【计算机网络】 本专栏旨在分享学习计算机网络的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 一、常见的计算机…

C语言练习百题之计算字符串中子串出现的次数

程序分析 计算字符串中子串出现的次数,一种直观的方法是遍历整个字符串,在每个位置检查子串是否匹配。另一种方法是利用字符串匹配算法来优化搜索过程,减少时间复杂度。 方法一:暴力法 解题思路: 在主串中依次遍历…

云原生周刊:Terraform 1.8 发布 | 2024.5.6

开源项目推荐 xlskubectl 用于控制 Kubernetes 集群的电子表格。xlskubectl 将 Google Spreadsheet 与 Kubernetes 集成。你可以通过用于跟踪费用的同一电子表格来管理集群。 git-sync git-sync 是一个简单的命令,它将 git 存储库拉入本地目录,等待一…