1. 程式人生 > >樹與二叉樹(一)

樹與二叉樹(一)

color i++ add 表示 popu pop finished 不能 http

定義

樹是n(n≥0)個結點的有限集,它或為空樹(n=0)。或為非空樹

非空樹T滿足下面條件:

(1) 有且僅有一個稱為根的結點;

(2)除根結點以外的其余結點可分為m(m>0)個互補相交的有限集T1,T2,…Tm,當中每個集合本身又是一棵樹,而且稱為根的子樹。

技術分享

                         空樹

技術分享

                       一般的樹

基本術語

根———即根結點(沒有前驅)

葉子———即終端結點(沒有後繼)

森林———指m棵不相交的樹的集合

有序樹———結點各子樹從左至右有序,不能互換

無序樹———結點各子樹可互換位置。

雙親———即上層的那個結點(直接前驅)

孩子———即下層結點的子樹的根(直接後繼)

兄弟———同一雙親下的同層結點(孩子之間互稱為兄弟)

堂兄弟———即雙親位於同一層的結點(但並不是同一雙親)

祖先———即從根到該結點所經分支的全部結點

子孫———即該結點下層子樹種的任一結點

結點———即樹的數據元素

結點的度———結點掛接的子樹數

結點的層次———從根到該結點的層數(根結點算第一層)

終端結點———即度為0的結點,即葉子

分支結點———即度不為0的結點(也稱為內部結點)

樹的度———全部結點度中的最大值

樹的深度———指全部結點中最大的層數(或高度)


二叉樹

二叉樹是一種特殊的樹結構,普通樹若不轉化成二叉樹,則運算非常難實現

為什麽要重點研究二叉樹呢?

  • 二叉樹的結構最簡單,規律性最強

  • 全部的樹都能轉為唯一相應的二叉樹,不失一般性。

定義:

每個節點至多有兩個子樹。

基本特點:

  • 結點的度小於等於2
  • 有序樹(子樹有序。不能顛倒)
    技術分享

                         二叉樹的五種形態
    

二叉樹的性質

性質1 : 一棵非空二叉樹的第i層上最多有2^i-1個結點(i≥1)。

性質2 :若規定空樹的深度為0,則深度為k的二叉樹最多有(2^k)-1個結點

(k≥0)。

性質3: 具有n個結點的全然二叉樹的深度k為log2n+1。

性質4 :對於一棵非空二叉樹。假設度為0的結點數目為n0,度為2的結點數目為n2。則有n0= n2+1。

性質5 :對於具有n個結點的全然二叉樹,假設依照從上到下和從左到右的順序對全部結點從1開始編號,則對於序號為i的結點,有:

  1. 假設i>1,則序號為i的結點的雙親結點的序號為i/2(“/”表示整除)。假設i=1,則該結點是根結點,無雙親結點。

  2. 假設2i≤n,則該結點的左孩子結點的序號為2i;若2i>n。則該結點無左孩子。

  3. 假設2i+1≤n。則該結點的右孩子結點的序號為2i+1。若2i+1>n,則該結點無右孩子。

滿二叉樹:一棵深度為k且有2k-1個結點的二叉樹。

意思是樹上掛滿了結點)

技術分享

全然二叉樹:深度為k的,有n個結點的二叉樹,當且僅當其每個結點都與深度為k的滿二叉樹中編號從1至n的結點一一相應(意思是僅僅有最後一層葉子不滿,且全部集中在左邊)

技術分享

                    Unfinished, see the next

樹與二叉樹(一)