从零开始学【树】

来源:互联网 发布:软件天空破解版 编辑:程序博客网 时间:2024/06/05 17:49

         在之前做二级的题的时候,偶尔会碰见二叉树,很自然的就想起了树,那么什么是树呢?这里说的可不是外面的参天大树,而是有实际概念的树,下面就来介绍一下树。

 1、树的基本概念

        树是由n(n≥0)个结点组成的有限集合。若n=0,称为空树;若n>0,则:
     (1)有一个特定的称为根(root)的结点。它只有直接后继,但没有直接前驱;

     ( 2)除根结点以外的其它结点可以划分为m(m≥0)个互不相交的有限集合T0,T1,…,Tm-1,每个集合Ti(i=0,1,…,m-1)又是一棵树,称为根的子树,每棵子树的根结点有且仅有一个直接前驱,但可以有0个或多个直接后继。

 2、树的逻辑结构描述 

      tree =(k,R)
      k={ki∣1≤i≤n;n≥0,kielemtype}
      R={r}
 其中,n为树中结点个数,若 n=0,则为一棵空树, n> 0时称为一棵非空树,而关系 r 应满足下列条件:

   (1)有且仅有一个结点没有前驱,称该结点为树根;
   (2)除根结点以外,其余每个结点有且仅有一个直接前驱;
   (3)树中每个结点可以有多个直接后继(孩子结点)

 3、基本术语

 (1)结点
指树中的一个数据元素,一般用一个字母表示。

 (2)结点的度    

一个结点包含子树的数目,称为该结点的度。 

 (3)树叶(叶子)
度为0的结点,称为叶子结点或树叶,也叫终端结点。 

 (4)孩子结点
若结点X有子树,则子树的根结点为X的孩子结点,也称为孩子,儿子,子女等。

 (5)双亲结点

若结点X有子女Y,则X为Y的双亲结点。 

 (6)兄弟结点
具有同一个双亲的结点,称为兄弟结点。 

 (7)分枝结点
除叶子结点外的所有结点,为分枝结点,也叫非终端结点。

 (8)子孙结点

某一结点的子女及子女的子女都为该结点子孙。

(9)祖先结点
从根结点到该结点所经过分枝上的所有结点为该结点的祖先

(10)层数
根结点的层数为1,其它结点的层数为从根结点到该结点所经过的分支数目再加1。 

 (11) 树的高度(深度) 
树中结点所处的最大层数称为树的高度,如空树的高度为0,只有一个根结点的树高度为1。

(12)树的度
树中结点度的最大值称为树的度。

(13)  有序树  
若一棵树中所有子树从左到右的排序是有顺序的,不能颠倒次序。称该树为有序树。

(14 ) 无序树
 若一棵树中所有子树的次序无关紧要,则称为无序树。

(15)森林(树林)
 若干棵互不相交的树组成的集合为森林。一棵树可以看成是一个特殊的森林。

4、具体实例:

         

1、A的度为2,B的度为3,树的度为3;
2、A,B,C,E为分支结点,D,H,I,F,G为叶子结点;
3、B,C为A的孩子结点;A为B,C的双亲结点;B,C互为兄弟结点;H的祖先结点为A,B,E;B的子孙结点为D,E,F,H,I。

4、A在1层,B,C在2层,D,E,F,G在3层,H,I在4层,树的深度为4;

5、对于一棵反映父子关系的家族树,兄弟结点之间是按照排行大小有序的,所以它是一棵有序树。 


小结:本博客主要是梳理知识点,并没有自己太多的理解,只能说通过梳理,更加深刻的理解了树。


3.树叶(叶9.分枝结点
除叶子结点外的所有结点,为分枝结点,也叫非终端结点。子)

 度为0的结点,称为叶子结点或树叶,也叫终端结点。 

 

树的逻辑结构描述 

1 0