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

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

空树:节点数为0的树

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

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

子树

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

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

树的基本术语

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

属性

有序树和无序树

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

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

有序树

无序树

树和森林

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

森林图示

相关推荐
Doro再努力17 小时前
【数据结构08】队列实现及练习
数据结构·算法
Jayden_Ruan20 小时前
C++分解质因数
数据结构·c++·算法
bubiyoushang88820 小时前
MATLAB实现雷达恒虚警检测
数据结构·算法·matlab
wu_asia20 小时前
编程技巧:如何高效输出特定倍数数列
c语言·数据结构·算法
星火开发设计21 小时前
C++ queue 全面解析与实战指南
java·开发语言·数据结构·c++·学习·知识·队列
橘颂TA21 小时前
【剑斩OFFER】算法的暴力美学——力扣 394 题:字符串解码
数据结构·c++·结构与算法
栈与堆1 天前
LeetCode 19 - 删除链表的倒数第N个节点
java·开发语言·数据结构·python·算法·leetcode·链表
-森屿安年-1 天前
unordered_map 和 unordered_set 的实现
数据结构·c++·散列表
txinyu的博客1 天前
map和unordered_map的性能对比
开发语言·数据结构·c++·算法·哈希算法·散列表
im_AMBER1 天前
Leetcode 101 对链表进行插入排序
数据结构·笔记·学习·算法·leetcode·排序算法