1. 程式人生 > >資料結構7--樹和二叉樹初識

資料結構7--樹和二叉樹初識

  1.樹的基本概念

        樹是一種重要的非線性結構,他是由n個節點組成的有限集合(n>0)

                     

      n=0時,稱為空樹,樹的頂端節點稱為樹的根,其餘節點可分為若干個互不相交的子集,每個子集本身又是一棵樹,稱為

      根的子樹。

                  

    這棵樹有9個節點,所有的度=節點數-1,所以度為8,D,E,F,H,I為子節點

                    

     同一個節點的孩子互稱為兄弟,如果兩個節點的父節點不同,但是父節點在同一個層次上,則互稱為堂兄弟。

    樹中各節點之間的連線稱為邊。

    從一個節點到另一個節點所經過的節點的順序稱為路徑。

    從根節點到任意的節點都只有唯一的路徑。

    森林是指n個不相交的樹的集合

 2.二叉樹

每個節點的度數均不超過2的有序樹稱為二叉樹

每個節點最多都兩個子節點,度數最大為2

節點的子樹有左右之分

在第i層上,最多有2的i次方個節點

如果一棵二叉樹的葉子節點的數量為n0,度數為2的節點的數量為n2,節點總數為n

度數為1的節點的數量為n1,那麼,n=n0+n1+n2  n=n1*1+n2*2+1

如果一個二叉樹的葉節點的數量為n0,度數為2的節點的數量為n2,則 n0=n2+1

高度為H的二叉樹最多有2的(H-1)次方-1個節點

滿二叉樹:除了葉子節點以外其他的節點都有兩個度,滿二叉樹不存在度為1的節點

滿二叉樹的所有節點的度都是2或者0,沒有度為1的節點。

兩者的區別:

完全二叉樹:除最後一層可能不滿以外,其他各層都達到該層節點的最大數,最後一層如果不滿,該層所有節點都全部靠左排滿二叉樹:所有層的節點數都達到最大

完全二叉樹:在滿的基礎上從右向左連續刪除若干個葉子節點,滿二叉樹其實就是完全二叉樹

3.二叉樹的儲存結構

  順序儲存:只適合滿二叉樹和完全二叉樹,當樹既不是完全二叉樹又不是滿二叉樹的時候:順序儲存:造成了資源浪費

                  

   鏈式儲存:

               

               

     瞭解二叉樹的基本概念以後下一節我們java程式碼實現二叉樹的鏈式儲存,敬請期待。。。。