1. 二叉樹簡介
二叉樹是n(n>=0)個結點的有限集合,該集合或者為空集(稱為空二叉樹),或者由一個根結點和兩棵互不相交的、分別稱為根結點的左子樹和右子樹組成。
如圖
如圖,每一個結點中最多擁有一個左結點和一個右結點,并沒有多余的結點,這是很明顯的二叉樹的特征
2. 二叉樹的特點
由二叉樹定義以及圖示分析得出二叉樹有以下特點:
1)每個結點最多有兩顆子樹,所以二叉樹中不存在度大于2的結點。
2)左子樹和右子樹是有順序的,次序不能任意顛倒。
3)即使樹中某結點只有一棵子樹,也要區(qū)分它是左子樹還是右子樹。
3. 二叉樹的性質
二叉樹具有以下幾種特征
性質1:二叉樹第i層上的結點數(shù)目最多為 2的(i-1)次方個節(jié)點(i≥1)。
性質2:深度為k的二叉樹至多有2的k次方-1個結點(k≥1)。
性質3:包含n個結點的二叉樹的高度至少為log2 (n+1)。
性質4:在任意一棵二叉樹中,若終端結點的個數(shù)為n0,度為2的結點數(shù)為n2,則n0=n2+1。
4. 幾種特殊的二叉樹
l 斜樹
斜樹:所有的結點都只有左子樹的二叉樹叫左斜樹。所有結點都是只有右子樹的二叉樹叫右斜樹。這兩者統(tǒng)稱為斜樹。
如圖為一顆左斜樹
l 滿二叉樹
滿二叉樹:在一棵二叉樹中。如果所有分支結點都存在左子樹和右子樹,并且所有葉子都在同一層上,這樣的二叉樹稱為滿二叉樹。
滿二叉樹的特點有:
1)葉子只能出現(xiàn)在最下一層。出現(xiàn)在其它層就不可能達成平衡。
2)非葉子結點的度一定是2。
3)在同樣深度的二叉樹中,滿二叉樹的結點個數(shù)最多,葉子數(shù)最多。
如圖為一顆滿二叉樹
l 完全二叉樹
完全二叉樹:對一顆具有n個結點的二叉樹按層編號,如果編號為i(1<=i<=n)的結點與同樣深度的滿二叉樹中編號為i的結點在二叉樹中位置完全相同,則這棵二叉樹稱為完全二叉樹。
如圖為一顆完全二叉樹
C語言網提供由在職研發(fā)工程師或ACM藍橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習題和答疑,點擊了解:
一點編程也不會寫的:零基礎C語言學練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進階課程
從零到寫出一個爬蟲的Python編程課程
只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程
信息學奧賽或C++選手的 必學C++課程
藍橋杯ACM、信息學奧賽的必學課程:算法競賽課入門課程
手把手講解近五年真題的藍橋杯輔導課程