樹是n( n >= 0 )個節點的有限集合。在任意一顆非空樹中
(1) 有且僅有乙個特定的稱為根的節點
(2) 當 n > 1 時,其餘節點可分為m( m > 0 )個互不相交的有限集 t1、t2…tm,其中每乙個集合本身又是一棵樹,並且稱為根的子樹。
根 根節點(沒有前驅)
葉子 又叫終端節點(沒有後繼, 度為0)
森林 m( m >= 0 )棵互不相交的樹的集合(對樹中的每個節點而言,其子樹的集合即為森林)
有序樹 樹中節點的各子樹從左至右有序,不能互換(左為第一)
無序樹 樹中節點的各子樹可互換位置
雙親 樹中除跟節點外節點的直接前驅節點
孩子 節點的子樹的根節點(節點的直接後驅節點)
兄弟 同一雙親下的同層節點(孩子之間互稱兄弟)
堂兄弟 雙親位於同一層的節點(並非同一雙親)
祖先 從根節點到該節點所經分支的所有節點
子孫 該節點下層子樹中任一結點
結點 樹的資料元素
結點的度 節點擁有的子樹數(即有幾個直接後繼)
節點的層次 從根到該節點的層數(根節點為第1層)
終端節點 度為0的節點(葉子)
分支節點 度不為0的節點(又叫非終端節點)
內部節點 除根節點外的分支節點
樹的度 所有節點度中的最大值
樹的深度 所有節點中最大的層數
是n( n >= 0 )個結點的有限集,它或者是空集(n=0),或者由乙個根結點及兩棵互不相交的、分別稱作這個根的左子樹和右子樹的二叉樹組成
空、僅有根節點、根的左子樹為空、根擁有非空左右子樹、根的右子樹為空
1、 每個節點最多只有兩顆子樹(不存在度大於2的節點)
2、 左子樹和右子樹次序不能顛倒(為有序樹)
1、二叉樹第i層上的結點數目最多為
2i-1( i >= 1 )
證明:用數學歸納法證明:
歸納基礎:i=1時,有
2i-1=20=1。又因為第1層上只有乙個根結點,所以命題成立。
歸納假設:假設對所有的j(1≤
j命題成立,即第
j層上至多有
2j-1個結點,可以證j=i時命題亦成立。
歸納步驟:根據歸納假設,第i-1層上至多有
2i-2個結點。由於二叉樹的每個結點至多有兩個孩子節點,故第i層上的結點數至多是第
i-1層上的最大結點數的
2倍。即
j=i時,該層上至多有2×
2i-2=2i-1個結點,故命題成立
2、深度為k的二叉樹至多有
2k-1個結點
( k>= 1 )
證明:當每一層都含有最大結點數時,其樹中結點數最多。因此利用性質1可得,深度為
k的二叉樹的結點數至多為:
20+21+…
+2k-1=2k-1 ===》( 等比數列求和公式
q=1時,
sn=n*a1 q≠1
時,sn=a1(1-q^n)/(1-q) )
故命題正確。
3、在任意
-棵二叉樹中,如果終端結點的個數為n0
,度為2的結點數為n2
,則no
= n2
+ 1證明:因為二叉樹中所有結點的度數均不大於2,所以結點總數(記為
n)應等於
0度結點數、
1度結點(記為
n1)和
2度結點數之和:
n=no+n1+n2 (式子1)
另一方面,0度結點沒有孩子,
1度結點有乙個孩子,
2度結點有兩個孩子,故二叉樹中孩子結點總數是:
n1+2n2
樹中只有根結點不是任何結點的孩子,故二叉樹中的結點總數又可表示為:
n=n1+2n2+1 (式子2)
由式子1和式子
2得到:
no=n2+1
滿二叉樹
一顆深度為k且含有2k-1個節點的二叉樹
特點:每一層上的節點數都是最大節點數
完全二叉樹
深度為k的有n個節點的二叉樹,當且僅當其每乙個節點都與深度為k的滿二叉樹中編號從1至n的節點一一對應時,該二叉樹為完全二叉樹
(也就是說以深度為k的滿二叉樹為模型,對滿二叉樹從上到下從左到右連續編號,然後拿乙個二叉樹模擬滿二叉樹編號,即使二叉樹的某個節點缺失,缺失的節點也佔乙個編號,如果編號完成的二叉樹的節點的編號是連續的,那麼他就是一顆完全二叉樹)
滿二叉樹也是完全二叉樹
完全二叉樹的性質:
1、具有n個節點的完全二叉樹的深度為⌊log2n⌋ + 1
2、如果對一顆有n個節點的完全二叉樹(其深度為⌊log2n⌋ + 1)的結點按層序編號(從第1層到第⌊log2n⌋ + 1層,每層從左到右),則對任一節點(1 <= i <= n), 有:
1) 如果i = 1, 則節點i是二叉樹的根,無雙親,如果i > 1, 則其雙親是節點⌊i/ 2⌋
2) 如果2i > n, 則節點i無左孩子(節點i為葉子節點),否則其左孩子是節點2i
3) 如果2i + 1 > n, 則節點i無右孩子,否則其右孩子是節點2i + 1
二叉樹的相關概念
一 概念 二叉樹 二叉樹是結點的乙個有限集合,該集合或者為空,或者是由乙個根節點加上兩顆分別稱為左子樹和右子樹的二叉樹組成。二叉樹的特點 1.每個結點最多有兩顆子樹,即二叉樹不存在度大於2的結點。2.二叉樹的子樹有左右之分,其子樹的次序不能顛倒。滿二叉樹 在一棵二叉樹中,如果所有分支節點都存在左子樹...
樹 二叉樹概念
什麼是二叉樹?樹又是什麼?在自然界中樹隨處可見,而在computer界可用其表示資料的一種結構搭建如下圖所示 字母部分為資料 即葉子 連線稱邊 樹枝 乙個倒置樹的形象 樹的資料結構概念簡單歸納如下 頂點vertex v 邊edge 根 root 最高頂點 本圖為a 深度depth 每個節點v到樹根r...
樹 二叉樹 滿二叉樹 完全二叉樹概念分清
自由樹是乙個連通的,無迴路的無向圖。令g v,e 為乙個無向圖。下面的表述是等價的。1 g是自由樹。2 g中任意兩個頂點由唯一一條簡單路徑得到。3 g是連通的,但從e中去掉任何邊後得到的圖都是非連通的。4 g是無迴路的,且 e v 1。5 g是連通的,且 e v 1。6 g是無迴路的,但新增任何邊到...