一、树的基本概念
1、树的定义
树是n(n>=0)个结点的有限集。当n = 0时,称为空树。在任意一棵非空树中应满足:
- 有且仅有一个特定的称为根的结点。
- 当n>1时,其余节点可分为m(m>0)个互不相交的有限集T1,T2,…,Tm,其中每个集合本身又是一棵树,并且称为根的子树。
显然,树的定义是递归的,即在树的定义中又用到了自身,树是一种递归的数据结构。树作为一种逻辑结构,同时也是一种分层结构,具有以下两个特点:
- 树的根结点没有前驱,除根结点外的所有结点有且只有一个前驱。
- 树中所有结点可以有零个或多个后继。
因此n个结点的树中有n-1条边。
2、树的性质
树具有如下最基本的性质:
- 树中的结点数等于所有结点的度数加1.
- 度为m mm的树中第i ii层上至多有m i − 1 m^{i-1}mi−1个结点(i > = 1 i>=1i>=1)
- 高度为h hh的m mm叉树至多有( m h − 1 ) / ( m − 1 ) (m^h-1)/(m-1)(mh−1)/(m−1)个结点。
- 具有n nn个结点的m mm叉树的最小高度为[ l o g m ( n ( m − 1 ) + 1 ) ] [log_m(n(m-1)+1)][logm(n(m−1)+1)]。