数据结构与算法篇(树 - 常见术语)

目录

一、什么是树?

二、相关术语

根结点

叶子结点

兄弟结点

祖先结点

结点的大小

树的层

结点的深度

结点的高度

树的高度

斜树


一、什么是树?

树是一种类似于链表的数据结构,不过链表的结点是以线性方式简单地指向其后继结点,而树的一个结点

可以指向许多个结点。

树是一种典型的非线性结构。

树结构是表达具有层次特性的图结构的一种方法。

对于树ADT(抽象数据类型),元素的顺序不是考虑的重点。

如果需要用到元素的顺序信息,那么可以使用链表、栈、队列等线性数据结构。

二、相关术语

根结点

根节点:根结点是一个没有双亲结点的结点。一棵树中最多有一个根结点(如上图的结点 A 就是根结点)。

边:边表示从双亲结点到孩子结点的链接(如上图中所有的链接)。

叶子结点

叶子节点:没有孩子结点的结点叫作叶子结点(如E、J、K、H和I)。

兄弟结点

兄弟结点:拥有相同双亲结点的所有孩子结点叫作兄弟结点(B、C、D是A的兄弟结点,E、F是B的兄弟结点

祖先结点

祖先结点:如果存在一条从根结点到结点q的路径,且结点力出现在这条路径上,

那么就可以把结点力叫作结点q的祖先结点,结点q也叫作力的子孙结点。例如,A、C和G是K的祖先结点。

结点的大小

结点的大小:结点的大小是指子孙的个数,包括其自身。(子树C的大小为3)。

树的层

树的层:位于相同深度的所有结点的集合叫作树的层(B、C和D具有相同的层)。

根结点位于0层。

结点的深度

结点的深度:是指从根结点到该结点的路径长度(G点的深度为2,A-C-G)。

结点的高度

结点的高度:是指从该结点到最深结点的路径长度。树的高度是指从根结点到树中最深结点的路径长度。

只含有根结点的树的高度为 0。在前面的例子中,B的高度为2(B-F-J)。

树的高度

树的高度:是树中所有结点高度的最大值,树的深度是树中所有结点深度的最大值。

对于同一棵树,其深度和高度是相同的。但是对于各个结点,其深度和高度不一定相同。

斜树

斜树:如果树中除了叶子结点外,其余每一结点只有一个孩子结点,则这种树称作斜树。

对于每个结点仅有一个左孩子结点的树叫作左斜树。类似地,对于每个结点仅有右孩子结点的树叫作右斜树。

相关推荐
小年糕是糕手几秒前
【C++同步练习】类和对象(一)
java·开发语言·javascript·数据结构·c++·算法·排序算法
小O的算法实验室1 分钟前
2025年IJPR SCI2区,基于混合邻域结构的高效稳定智能调度算法用于柔性作业车间调度,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
再卷也是菜1 分钟前
C++篇(23)B树
数据结构·b树
小年糕是糕手2 分钟前
【C++同步练习】类和对象(二)
java·开发语言·javascript·数据结构·c++·算法·ecmascript
沙白猿2 分钟前
B树 / B+树
数据结构·b树·算法
我不是彭于晏丶2 分钟前
74. 搜索二维矩阵
数据结构·算法
一个处女座的程序猿5 分钟前
AI之Algorithms:TheAlgorithms_Python(所有用 Python 实现的算法)的简介、安装和使用方法、案例应用之详细攻略
人工智能·python·算法
EXtreme355 分钟前
链表进化论:C语言实现带哨兵位的双向循环链表,解锁O(1)删除的奥秘
c语言·数据结构·性能优化·双向链表·编程进阶·链表教程
进击的荆棘7 分钟前
数据结构与算法——排序
数据结构·算法·排序算法
roman_日积跬步-终至千里17 分钟前
【模式识别与机器学习(14)】K-means算法中K值确定教程
算法·机器学习·kmeans