数据结构~~树(2024/2/8)

目录

1、定义:

2、树的基本术语:

3、树的表示


1、定义:

树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。

树是递归定义的!!

【注意】

(1)当n=0时称为空树。

(2)当n=0时称为空树,对于非空树T:

只有一个根结点(root);

除根节点外的其余结点可分为m个互不相交的有限集T1,T2,......,Tm,其中每个集合本身又是一棵树,称为根的子树。

2、树的基本术语:

结点:树的一个独立单元,包含一个数据元素或者指向其子树的分支。如图中的A,B,C等。

**结点的度:**结点拥有的子树数称为结点的度(也可以理解为这个结点有多少个孩子)。如A的度是2,B的度是3,D的度是0。

树的度:树的各个结点的度的最大值。如图中的树的度为3。

叶子结点(或者终端结点):度为0的结点。如图中的D,E,F,G。

非终端结点:度不为0的结点。除根结点外,非终端结点也称为内部结点。如图中B,C。

孩子结点(或者子节点):一个结点的子树的根结点称为该结点的孩子结点。如图中B和C是A的子结点。

双亲结点(或者父结点):一个结点有一个子结点,该结点称为其子结点的父结点。如图中,A是B和C的双亲结点。

兄弟结点:同一双亲的孩子之间互称兄弟。如图中B和C是兄弟结点。

祖先:从根结点到该结点所经分支上的所有结点。如D的祖先是A和B。

子孙:以某结点为根的子树的任一结点都称为该结点的子孙。如D,E,F是B的子孙。

层次:从根结点开始,根结点为第一层,根的孩子为第二层,以此类推直到最后一层。如A是第一层,B是第二层,D是第三层。

深度:树中结点的最大层次。如A这棵树的深度是3。

森林:由m棵互不相交的树构成的集合。如去掉A结点,B和C这两棵子树就是森林。

3、树的表示

树结构相对线性表就比较复杂了,要存储表示起来就比较麻烦了,实际中树有很多种表示方式,如:双亲表示法,孩子表示法、孩子兄弟表示法等等。

我们了解其中最常用的孩子兄弟表示法:

复制代码
typedef int DataType;
struct Node
{
     struct Node* firstChild1; 
     struct Node* pNextBrother; 
     DataType data; 
};

下一次我们开始学习二叉树!!!

相关推荐
m0_547486661 天前
《数据结构教程》全套 PPT课件2026
数据结构
tryxr2 天前
矩阵的几种基础变换
java·数据结构·算法·矩阵
mmmmath_32 天前
LeetCode.028.找出字符串中第一个匹配项的
数据结构·算法·leetcode
All for pursuit.2 天前
【栈-4】739.每日温度
数据结构·c++·算法·leetcode
All for pursuit.2 天前
【栈-5】84.柱状图中最大的矩形
数据结构·c++·算法·leetcode
渡我白衣2 天前
HttpRequest与HttpResponse的实现
服务器·数据结构·c++·人工智能·tcp/ip·机器学习·caffe
晴天的雨.9922 天前
【C++算法】和为s的两个数
开发语言·数据结构·c++·算法
淡海水2 天前
13-04-面试-源码级深度追问链
数据结构·unity·面试·c#·游戏引擎·源码·il2cpp
Logic1012 天前
C语言/数据结构位运算题解:异或XOR找出时尚聚会中的“独特颜色“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
2401_839080542 天前
C++常见八股
数据结构·c++·算法