一、树的基本概念
树是一种递归的数据结构,树作为一种逻辑结构,同时也是一种分层结构
1.1树的定义
树是n(n>=0
)个结点的有限集
,当n=0的时候,称为空树。在任意一颗非空树中应满足:
- 有且仅有一个特定的称为根的结点
- 当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1、T2…Tm,其中每个集合本身又是一颗树,并且称为g
1.2树的特点
- 树的根节点没有前驱,除根结点外的所有结点有且只有一个前驱
- 树中的所有结点可以有零个或多个后继,根节点没有直接上层结点(因此
n个结点的树有n-1条边
),而树中的每个节点与其下一层的零个或多个结点有直接关系
二、基本术语
- 度:
结点的度
:有几个孩子(分支)
树的度
:各节点的度的最大值 - 叶子结点:度为0的结点(终端结点)
结点
的深度
:从根节点
开始从上往下数- 结点的
高度
:从叶子节点
开始从下往上 树
的高度(或深度)
:是树中结点的最大层数(总共有多少层)- 路径:树中两个结点直接的路径是由这两个结点之间所经过的结点序列构成的(注:由于树的分支是有向的,即双亲指向孩子,所以树的路径是从上向下的,同一个双亲的两个孩子之间不存在路径)
- 路径长度:路径上所经过的边的个数
- 森林:是m(
m>=0
)个互不相交的树的集合。只要把树的根节点删去就成了森林。反之,给m颗独立的树加上一个结点,并把m颗树作为该结点的子树,则森林就成了树
三、树的性质
性质1:结点数=总度数+1
性质2:度为m和m叉树的区别
:
度为m的树:至少有一个结点的度为m
m叉树:任意结点的度不得大于m