数据结构:树(树的定义和基本术语)

非空树:有且仅有一个根节点

空树:节点数为0的树

在非空树中根节点没有前驱,叶子结点(终端结点)没有后继,分支结点(非终端结点)前驱和后继都有,前驱有且仅有一个。

下图有多个前驱,不是树结构

子树

子树可以看作是一个新的树,而新的树又可以分为多个子树

由此可见树是一种递归定义的数据结构

树的基本术语

祖先结点/子孙结点/双亲结点(父节点)/孩子结点/兄弟结点:参照现实中的家庭关系

属性

有序树和无序树

有序树:逻辑上看,树中结点的各子树从左至右是有次序的,不能互换(例如家庭关系)

无序树:逻辑上看,树中结点的各子树从左至右是无次序的,可以互换(例如我国行政规划关系)

有序树

无序树

树和森林

森林是m(m>=0)棵互不相交的树的集合,m=0时为空森林

森林图示

相关推荐
All for pursuit.1 天前
【矩阵-2】240.搜索二维矩阵 II
数据结构·c++·算法·leetcode
Logic1011 天前
C语言/数据结构位运算题解:异或XOR找出蛋糕订单中的“VIP独特口味“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
Logic1011 天前
C语言/数据结构位运算题解:异或XOR找出飞行棋中的“独特颜色棋子“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
爱吃苹果的日记本1 天前
数据结构第三课(时间复杂度)
数据结构·学习
Logic1011 天前
C语言/数据动态规划题解:翻转一次子数组后的最大子数组和——四状态DP(O(n)时间O(1)空间)
c语言·数据结构·动态规划·时间复杂度·算法题·状态机dp·最大子数组和
小π军2 天前
最大重叠区间数量
数据结构·算法
Logic1012 天前
C语言/数据结构字符串题解:找出DNA序列中未配对的独特序列——排序+遍历(O(nlogn))
c语言·数据结构·字符串·数组·排序·时间复杂度·算法题
wzdark2 天前
基于链表的内存池设计与内存复用机制4
java·数据结构·链表
BizzZ_2 天前
算法(1)——双指针
数据结构
Doubbbbbbble云2 天前
内存碎片化对数据结构操作性能的影响研究4
数据结构