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

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

空树:节点数为0的树

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

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

子树

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

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

树的基本术语

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

属性

有序树和无序树

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

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

有序树

无序树

树和森林

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

森林图示

相关推荐
aloha_78911 小时前
力扣hot100做题整理91-100
数据结构·算法·leetcode
Tiny番茄11 小时前
31.下一个排列
数据结构·python·算法·leetcode
挂科是不可能出现的11 小时前
最长连续序列
数据结构·c++·算法
_Aaron___11 小时前
List.subList() 返回值为什么不能强转成 ArrayList
数据结构·windows·list
码农多耕地呗13 小时前
力扣146.LRU缓存(哈希表缓存.映射+双向链表数据结构手搓.维护使用状况顺序)(java)
数据结构·leetcode·缓存
晚枫~13 小时前
数据结构基石:从线性表到树形世界的探索
数据结构
hadage23314 小时前
--- 数据结构 AVL树 ---
数据结构·算法
liu****14 小时前
8.list的使用
数据结构·c++·算法·list
立志成为大牛的小牛14 小时前
数据结构——二十六、邻接表(王道408)
开发语言·数据结构·c++·学习·程序人生
学编程就要猛16 小时前
数据结构初阶:时间和空间复杂度
数据结构