1. 程式人生 > >資料結構之常見二叉樹

資料結構之常見二叉樹

二叉樹定義:

二叉樹是一個由結點構成的有限集合,這個集合或者為空,或者由一個根結點及兩棵互不相交的分別稱作這個根結點的左子樹和右子樹組成。

二叉樹的基本形態

二叉樹與一般樹型結構的主要區別在於

1,二叉樹中每個非空結點最多隻有兩個子女,而一般的樹形結構中每個非空結點可以有0到多個子女

2,二叉樹中結點的子樹要區分左子樹和右子樹,即使在結點只有一棵子樹的情況下也要明確指出是左子樹還是右子樹

二叉樹的性質

性質1 

一棵非空二叉樹的第 i 層上至多有2i -1次方個結點(i >= 1)。

推論:當i =1時,只有根結點,此時2i -1 = 1,顯然上述性質成立;

又由於在二叉樹中每個結點最多隻能具有兩個子女,而第i - 1層上所有結點的子女結點恰巧構成第i層上的所有結點,因而第i層上的結點的最大個數是第i -1層上結點的最大個數的二倍。

性質2

深度為h的二叉樹至多有2h個結點(其中h>=1)

推論:

根據性質1 ,深度為h的二叉樹至多具有的結點個數位20 +21 +.......2h-1 = 2h-1。

性質3

對於任何一棵二叉樹T,如果其終端結點為n0,度為2的結點數為n2,則n0 = n2 + 1.

假設二叉樹中總的結點個數為n,度為1的結點個數為n1,則有n = n0 + n1 + n2成立;又由於在二叉樹中除根結點外,其它結點

均通過一條樹枝且僅通過一條樹枝與其父母結點相連,即除根結點外,其它結點與樹中樹枝存在一一對應關係,而二叉樹中樹枝的總條數 n1 + 2* n2,因而二叉樹的總的結點個數 n = n1 + 2 * n2 + 1。於是有

n0 + n1 + n2 = n1 + 2 * n2 + 1

顯然 n0 = n2 + 1成立。

特殊的二叉樹

滿二叉樹

如果一棵二叉樹中所有終端結點均位於同一層次,且其他非終端結點的度數均為2,則稱此二叉樹為滿二叉樹。


完全二叉樹

如果一棵二叉樹扣除其最大層次那層後即成為一棵滿二叉樹,且層次最大那層的所有結點均向左靠齊,則稱該二叉樹為完全二叉樹。

 

//該文章是博主整理於資料結構李雲清版