1. 程式人生 > 其它 >資料結構之樹

資料結構之樹

一、樹

1.概念

前驅唯一,後驅不唯一(一對多,是非線性結構,結點之間有分支,具有層次關係)

數是n(n>=0)個結點的有限集

若n=0為空樹

n>0時,有且僅有一個特定的稱為根的結點
其餘結點可以分為m(m>=0)個互不相交的有限集T1,T2,T3...Tm,其中每一個集合本身又是一棵樹,並稱為根的子樹

2.樹的基本術語

結點:資料元素以及指向子樹的分支
根結點:非空樹中無前驅結點的結點

結點的度:結點擁有的子樹數(後繼結點的個數)
樹的度:樹內各結點的度的最大值( 度為零的結點成為葉子,也稱終端結點, 度不為零的結點為非終端結點)

樹的深度:樹中結點的最大層次

有序樹:樹中結點的各子樹從左至右有次序

森林:m(m>=0)棵互不相交的樹的集合

二、二叉樹

1.二叉樹的概念

二叉樹的結構最簡單,規律性最強且所有樹都能轉為唯一對應的二叉樹,不失一般性,普通樹不轉化為二叉樹運算很難實現

二叉樹:是n(n>=0)個結點的有限集,它或者是空集(n=0),或者由一個根結點及兩棵互不相交的分別稱為這個根的左子樹和右子樹的二叉樹組成。

特點:1.每個結點最多有兩個子樹(二叉樹中不存在度大於2的結點)
          2.子樹有左右之分,其次序不能顛倒
          3.二叉樹可以是空集合,根可以有空的左

二叉樹不是樹的特殊情況,是兩個概念(二叉樹會嚴格區分左右子樹,可以是空,但是不可以說沒有它的位置)
雖然二叉樹和樹的概念不同,但是有關樹的基本術語對二叉樹都適用。

2.二叉樹的性質

(1) 在二叉樹的第i層上至多有2i-1個結點(i>=1)
(2)深度為K的二叉樹至多有2k-1個結點(k>=1),至少有K個結點
(3)對任何一顆二叉樹T,如果其葉子數為n0,度為2的結點數為n2,則n0=n2+1