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

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

空树:节点数为0的树

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

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

子树

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

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

树的基本术语

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

属性

有序树和无序树

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

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

有序树

无序树

树和森林

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

森林图示

相关推荐
liang_jy5 小时前
数组(Array)
数据结构·面试·trae
要做朋鱼燕6 小时前
【数据结构】用堆解决TOPK问题
数据结构·算法
秋难降7 小时前
LRU缓存算法(最近最少使用算法)——工业界缓存淘汰策略的 “默认选择”
数据结构·python·算法
Jayyih9 小时前
嵌入式系统学习Day19(数据结构)
数据结构·学习
DdduZe10 小时前
8.19作业
数据结构·算法
PyHaVolask10 小时前
链表基本运算详解:查找、插入、删除及特殊链表
数据结构·算法·链表
1白天的黑夜111 小时前
链表-2.两数相加-力扣(LeetCode)
数据结构·leetcode·链表
花开富贵ii11 小时前
代码随想录算法训练营四十六天|图论part04
java·数据结构·算法·图论
熬了夜的程序员11 小时前
【LeetCode】16. 最接近的三数之和
数据结构·算法·leetcode·职场和发展·深度优先
Miraitowa_cheems11 小时前
LeetCode算法日记 - Day 15: 和为 K 的子数组、和可被 K 整除的子数组
java·数据结构·算法·leetcode·职场和发展·哈希算法