树的基本概念
树是n(n>=0)个结点的有限集合,n=0时,称为空树
而任意非空树应满足:
- 有且仅有一个特定的称为根的结点
- 当n>1时,其余结点可分为m(m>0)个互不相交的有限集合,其中每一个集合本身又是一棵树,称为根结点的子树
基本术语:
祖先结点和子孙结点、双亲结点和孩子结点、兄弟结点
树中一个结点的子结点的个数称为该结点的度;
树中各结点度的最大值称为树的度
度大于0的结点称为分支结点
度为0的结点称为叶子结点
结点的层数【自顶向下】
结点的高度【自底向上】
结点的深度【自顶向下】
树的高度(深度)是树中结点的最大层数
树中每一层结点个数的最大值称为树的宽度
路径:树中两个结点之间的路径是由这两个结点之间所经过的结点序列构成的【树中的分支是有向的,即从双亲结点指向孩子结点,所以路径一定是自上而下的】
路径长度:路径上所经历边的个数
有序树:树中任意结点的子结点之间有顺序关系
无序树:树中任意结点的子结点之间没有顺序关系,也叫自由树
树的性质:
- n个结点的树中只有n-1条边
- 树中的结点数等于所有结点的度数+1
- 度为m的树中第i层上至多有m^(i-1)个结点(i>=1)
- 高度为h的m叉树至多有(m^h-1)/(m-1)个结点
- 具有n个结点的m叉树的最小高度为
森林:m(m>=0)棵互不相交的树的集合