一.树的定义和基本术语
树是n(n>=0)个结点的有限集合,n=0时,称为空树;在任意一棵非空树中,当n>1时,其余结点可分为m(m>0)个互不相交的有限集合,其中每个集合本身又是一棵树,并且称为根结点的子树。
树:从树根(根结点)生长,逐级分支。 空树:结点数为0的树。 非空树:有且仅有一个根结点;没有后继的结点称为“叶子结点”(终端结点);有后继的结点称为“分支结点”(非终端结点);除了根结点外,任何一个结点都有且仅有一个前驱;每个结点可以有0个或多个后继。
结点之间的关系描述: 1.祖先节点:从一个结点出发往上走直到到达根结点,这条路径所经过的所有结点称为该结点的祖先节点。 2.子孙结点:从一个结点出发所分支的所有结点称为该结点的子孙节点。 3.双亲结点(父结点):一个结点的直接前驱称为该结点的双亲结点。 4.孩子结点:一个结点的直接后继称为该结点的孩子结点。 5.兄弟结点:同一个结点的所有直接后继互称为兄弟结点。 6.堂兄弟结点:同一层次,拥有不同直接前驱的结点称为堂兄弟结点。
路径:路径是单向的,只能从上往下 路径长度:两个结点之间经过了边的数量。
结点、树的属性描述:1.结点的层次(深度):从上往下数。(默认从1开始) 2.结点的高度:从下往上数。 3.树的高度(深度):树的层数。 4.结点的度:一个结点的分支数量(直接后继数量)。 5.树的度:各结点的度的最大值。
有序树:从逻辑上看,树中结点的各个子树从左至右是有次序的,不能互换。
无序树:从逻辑上看,树中结点的各个子树从左至右是无次序的,可以互换。
森林:森林是m(m>=0)棵互不相交的树的集合(存在空森林)。
二.树的性质
1.结点数=总度数+1
2.度为m的树和m叉树的区别:(1)度为m的树:1.任意结点的度<=m; 2.至少有一个结点的度为m; 3.一定是非空树,至少有m+1个结点。 (2)m叉树:1.任意结点的度<=m; 2.允许所有结点的度都<m; 3.可以是空树。
树的度:各结点的度的最大值。 m叉树:每个结点的度最多为m的树。
3.度为m的树的第i层至多有个结点(i>=1)。
4.高度为h的树m叉树至多有个结点。
5.高度为h的树m叉树至少有h个结点;高度为h、度为m的树至少有h+m-1个结点。
6.具有n个结点的m叉树的最小高度为。