树中的重要概念

article/2025/10/26 21:17:39

1 基本术语及定义

1.1 根节点

根节点:是树中唯一没有入边的节点。

1.2 父节点

父节点:一个节点是其所有子节点的父节点

1.3 子节点

子节点:一个节点通过出边与子节点相连

1.4 兄弟节点

兄弟节点:具有同一个父节点的节点称为兄弟节点

1.5 叶子节点

叶子节点:叶子节点没有子节点

1.6 层数

节点n的层数是从根节点到n的唯一路径长度

1.8 高度

高度:树的高度是其中节点层数的最大值。

1.9 树

树(Tree)是n(n≥0)个结点的有限集。n=0时称为空树。在任意一棵非空树中:(1)有且仅有一个特定的称为根(Root)的结点;(2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2,…,Tm,其中每一个集合本身又是一棵树,并且称为根的子树(SubTree)。树只能有一个根节点。

1.10 子树

子树:一个父节点及其所有后代的节点和边构成一棵子树,子树需互不相交。

1.11 二叉树

二叉树(Binary Tree)是n(n≥0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树的二叉树组成。
二叉树更简单的定义:如果每个节点最多有两个子节点,我们就称这样的树为二叉树。

1.12 斜树

斜树:所有结点都只有左子树或都只有右子树的二叉树。
比如:
在这里插入图片描述
在这里插入图片描述

1.13 满二叉树

满二叉树,二叉树所有结点都存在左子树和右子树,所有叶子结点都在同一层,称为满二叉树。
在这里插入图片描述

1.14 完全二叉树

完全二叉树:对一棵具有n个结点的二叉树按层序编号,如果编号为i(1≤i≤n)的结点与同样深度的满二叉树中编号为i的结点在二叉树中位置完全相同,则这棵二叉树称为完全二叉树。
在这里插入图片描述

树的属性

1.层次性:树是按层级构建的,越笼统就越靠近顶部,越具体则越靠近底部。
2.一个节点的所有子节点都与另一个节点的所有子节点无关
3.叶子节点都是独一无二的。


http://chatgpt.dhexx.cn/article/gBawgN6Q.shtml

相关文章

VScode 代码注释

MAC: 单行注释/取消注释: command/ 多行注释/取消注释: 1.选中要注释代码块command/ 2.optionshifta 3.JsDOc注释:/tab** 如下图所示 常用于给方法写注释,写在方法上时会自动带上此方法的参数,而且会车自…

说说代码中的注释

*what: 注释,也是解释,标记。代码中的注释不会被执行! *why: 方便提醒自己,这代码代表的是什么功能?当代码量很大的时候,非常有用。 当然,平时写代码就得规范&#x…

3、代码注释与编码规范

目录 一、代码注释 (1)单行注释 (2)多行注释 (3)文档注释 2. 编码规范 一、代码注释 (1)单行注释 “//”为单行注释标记,从符号“//”开始直到换行为止的所有内容…

关于如何优雅的做好代码注释

问题思考 作为研发同学,对于代码“注释”其实并不陌生。它往往作为我们代码文档的特殊补充而存在。 其实在代码文档中,起主要作用的因素并非注释,而是好的编程风格。 编程风格包括:良好的程序结构、易于理解的方法、有意义的变量…

VS Code - 自动生成代码注释

目录 1. 代码注释 2. 插件安装 3. 使用示例 1. 代码注释 代码注释在软件的迭代过程中举足轻重,所以一个规范化的代码注释也非常重要,在用 VS Code 中则可以使用插件来规范化代码注释。 autoDocstring: VSCode Python Docstring Generator GitHub - N…

python中如何注释代码

1、python中通过#来注释单行不需要运行的代码,如: 此时,被注释代码变灰色了,那么在执行程序时,该行代码就不会被运行了 2、注释多行代码用xxxxx或者"""xxxx"""来注释,作用同…

python 代码注释

文章目录 写在前面使用方法plainEpytextGoogleNumpyreStructuredText相关程序包其他 写在前面 如果说高效率的算法是一个项目的内核,那么完备的文档注释、API 接口则是项目的外壳,直接与客户交互。 pycharm 提供了 5 种 代码注释格式。 分别是 plain, e…

谈代码注释

只要写代码,就会遇到代码注释的问题。在不同的公司,不同的项目组,不同的项目中,可能会有不同的注释标准。有些标准让我们感觉很受益,有些则让我们感觉很反感。而对于没有明确标准的项目,我们往往会遇到“百…

教你写好代码注释

前言 相信大家都会遇到这种情况:一周前自己写的代码,现在再拿出来看,发现读不懂了,“ 这代码是我写的???”。这时候,代码注释就可以发挥它的作用了——提高晦涩难懂的代码的可读性&…

关于代码的注释的几种方法

注释就是对代码的解释和说明,其目的是让人们能够更加轻松地了解代码。注释是编写程序时,写程序的人给一个语句、程序段、函数等的解释或提示,能提高程序代码的可读性。注释只是为了提高可读性,不会被计算机编译。 注释一般分为行注…

C++设计模式之观察者模式和发布订阅模式

在软件工程中,设计模式(Design Pattern)是对软件设计普遍存在(反复出现)的各种问题,锁提出的解决防范。根据模式的目的来划分的话,GoF(Gang of Four) 设计模式可以分为以…

Redis发布订阅模式实现原理

前言 发布订阅系统在我们日常的工作中经常会使用到,这种场景大部分情况我们都是使用消息队列,常用的消息队列有 Kafka,RocketMQ,RabbitMQ,每一种消息队列都有其特性,很多时候我们可能不需要独立部署相应的消…

RabbitMQ入门案例之发布订阅模式

前言 本文章主要介绍RabbitMQ的发布订阅模式,该模式下,消息为广播形式,一经发布则会进入交换机绑定的队列中,详细介绍可以阅读官方文档。 官网文档地址:https://rabbitmq.com/getstarted.html 什么是发布与订阅模式 …

浅谈JS发布订阅模式

🏆分享博主自用牛客网🏆:一个非常全面的面试刷题求职网站,真的超级好用🍬 文章目录 前言一、发布订阅模式是什么?二、使用步骤1.创建调度中心2.实际操作3. React中的应用 总结 前言 在使用前端各大框架时&…

React 中的发布订阅模式

1、react 通信 react的数据流是单向的, react 通信有以下几种方式: 单向数据流:指当前组件的 state 以 props 的形式流动时只能流向组件树中比自己层级更低的组件 父向子通信:父组件提供state,并且内部设置好数据,子组…

深入Vue原理_全面剖析发布订阅模式

文章目录 发布订阅模式优化优化思路思考理解发布订阅模式(自定义事件)收集更新函数触发更新函数6.5 总结 总结写在最后本期推荐 欢迎各位小伙伴们! 为大家推荐一款刷题神奇哦 点击链接访问牛客网 各大互联网大厂面试真题。从基础到入阶乃至原理刨析类面试题 应有尽有…

观察者模式VS发布订阅模式区别

观察者模式VS发布订阅模式区别 观察者模式:订阅者收集函数,发布者循环调用 发布订阅:收集发布单独给一个中介 对比 以结构来分辨模式,发布订阅模式相比观察者模式多了一个调度中心; 以意图来分辨模式,都…

RabbitMQ:发布订阅模式

✨ RabbitMQ:发布订阅模式 1.订阅模式基本介绍2.交换机3.发布订阅模式3.1基本介绍3.2生产者3.3消费者3.4测试 📃个人主页:不断前进的皮卡丘 🌞博客描述:梦想也许遥不可及,但重要的是追梦的过程,用博客记录自己的成长,记…

JavaScript设计模式:四、发布订阅模式

JavaScript设计模式:四、发布订阅模式 文章目录 JavaScript设计模式:四、发布订阅模式一、概述1. 观察者模式2. 发布订阅模式3. 观察者模式是不是发布订阅模式 一、概述 观察者模式: 观察者(Observer)直接订阅&#x…

发布订阅模式理解

发布订阅模式理解 1.发布-订阅模式 发布订阅模式是一种一对多的对象对应关系,多个观察者同时监听某一个对象,当该对象发生改变时,就会执行一个发布事件,这个发布事件会通知所有的事件订阅者,事件订阅者根据得到的数据…