數據結構與算法(4)樹

樹的基本概念:

                                                                      

一、結點的度數據結構

      結點的度是子結點的個數。例如:結點1有三個字結點2,3,4,因此結點1的度爲3。spa

二、樹的度基礎

      樹的度等於全部結點度中度最高的值。例如:上圖中結點度最高爲3,因此樹的度爲3。二叉樹

三、葉子結點遍歷

      葉子結點是度爲0的結點即沒有子結點的結點。例如:上圖中3,5,6,7,9,10。float

 

四、分支結點im

      分支結點是除了葉子結點,樹中的其餘全部結點。例如:上面樹的分支結點爲1,2,4,8。數據

五、內部結點img

      內部結點是除了根結點以及葉子結點或在分支結點的基礎之上在去掉根結點。例如:上面樹的內部結點爲2,4,8。分支

六、父結點、子結點、兄弟結點

     父節點、子結點和兄弟結點是相對而言的。例如:結點1是結點2,3,4的父節點,結點2,3,4也是結點1的子結點,結點2,3,4又是兄弟結點。

七、層次

     圖中咱們已經表出來了,根爲第一層,根的孩子爲第二層,依此類推,若某結點在第i層,則其孩子結點在第i+1層。

樹的遍歷  

一、前序遍歷

      基本思想:前序遍歷就是先訪問根結點,再訪問葉子結點。

      圖中樹的前序遍歷爲:1,2,5,6,7,3,4,8,9,10。

二、後序遍歷

  基本思想:本後序遍歷就是先訪問子結點,再訪問根結點。

      圖中樹的後序遍歷爲:5,6,7,2,3,9,10,8,4,1。

三、層次遍歷

     基本思想:從第一層開始,依此遍歷每層,直到結束。

     圖中樹的層次遍歷爲:1,2,3,4,5,6,7,8,9,10。

二叉樹

 

通常二叉樹性質:

  在非空二叉樹的k層上,至多有2k個節點(k>=0)

  高度爲k的二叉樹中,最多有2k+1-1個節點(k>=0)

  對於任何一棵非空的二叉樹,若是葉節點個數爲n0,度數爲2的節點個數爲n2,則有: n0 = n2 + 1

徹底二叉樹性質:

  具備n個節點的徹底二叉樹的高度k爲[log2n]

  對於具備n個節點的徹底二叉樹,若是按照從上(根節點)到下(葉節點)和從左到右的順序對二叉樹中的全部節點從0開始到n-1進行編號,則對於任意的下標爲k的節點,有:

 

徹底二叉樹性質:

  • 若是k=0,則它是根節點,它沒有父節點;若是k>0,則它的父節點的下標爲[(i-1)/2];
  • 若是2k+1 <= n-1,則下標爲k的節點的左子結點的下標爲2k+1;不然,下標爲k的節點沒有左子結點.
  • 若是2k+2 <= n-1,則下標爲k的節點的右子節點的下標爲2k+2;不然,下標爲k的節點沒有右子節點

滿二叉樹性質:

      在滿二叉樹中,葉節點的個數比分支節點的個數多1

二叉樹遍歷

                                                                            

一、前序遍歷(與樹的前序遍歷同樣)

      基本思想:先訪問根結點,再先序遍歷左子樹,最後再先序遍歷右子樹即根—左—右。

      圖中前序遍歷結果是:1,2,4,5,7,8,3,6。

二、中序遍歷

      基本思想:先中序遍歷左子樹,而後再訪問根結點,最後再中序遍歷右子樹即左—根—右。

      圖中中序遍歷結果是:4,2,7,8,5,1,3,6。

三、後序遍歷

      基本思想:前後序遍歷左子樹,而後再後序遍歷右子樹,最後再訪問根結點即左—右—根。

      圖中後序遍歷結果是:4,8,7,5,2,6,3,1。

四、層次遍歷(與樹的層次遍歷同樣)

 樹與二叉樹區別

  一、樹能夠有多個子結點,二叉樹最多隻能兩個結點。

  二、樹中的子結點是無序的,二叉樹是分左子結點和右子結點。

  三、二叉樹不是特殊樹,而是獨立的數據結構。

相關文章
相關標籤/搜索