【數據結構】二叉樹是什麼

 二叉樹

在計算機科學中,二叉樹是每個結點最多有兩個子樹的樹結構。通常子樹被稱作“左子樹”(left subtree)和“右子樹”(right subtree)。二叉樹常被用於實現二叉查找樹和二叉堆。
二叉樹的每個結點至多隻有二棵子樹(不存在度大於2的結點),二叉樹的子樹有左右之分,次序不能顛倒。二叉樹的第i層至多有2^{i-1}個結點;深度爲k的二叉樹至多有2^k-1個結點;對任何一棵二叉樹T,如果其終端結點數爲n_0,度爲2的結點數爲n_2,則n_0=n_2+1。
一棵深度爲k,且有2^k-1個節點的二叉樹,稱爲滿二叉樹。這種樹的特點是每一層上的節點數都是最大節點數。而在一棵二叉樹中,除最後一層外,若其餘層都是滿的,並且最後一層或者是滿的,或者是在右邊缺少連續若干節點,則此二叉樹爲完全二叉樹。具有n個節點的完全二叉樹的深度爲log2(n+1)。深度爲k的完全二叉樹,至少有2^(k-1)個節點,至多有2^k-1個節點。

二叉樹相關知識

滿二叉樹:在一棵二叉樹中,如果所有分支節點都存在左子樹和右子樹,並且所有葉子節點都在同一層,則這樣的二叉樹稱作滿二叉樹。
完全二叉樹:如果一顆具有n個節點的二叉樹的結構與滿二叉樹的前n個節點的結構相同,這樣的二叉樹稱爲完全二叉樹。

 二叉樹性質

1:若規定根節點的層數爲0,則一棵非空二叉樹的第i層上最多有2^i(i>=0)個節點。
2: 若規定只有根節點的二叉樹的深度爲0,則深度爲k的二叉樹的最大節點數是2^(k+1)-1(k>=-1)。
3:對於一棵非空的二叉樹,如果葉節點個數爲n0,度爲2的節點個數爲n2,則有n0=n2+1。
4:具有n個節點的完全二叉樹的深度k爲大於或等於ln(n+1)-1的最小整數。
5:對於具有n個節點的完全二叉樹,如果按照從上至下和從左至右的順序對所有節點序號從0開始順序編號,則對於序號爲i(0<=i

二叉樹的存儲方式

1.二叉樹的順序存儲結構
利用性質5,對於完全二叉樹可以利用一維數組存儲,如果不是完全二叉樹,則可以補空節點,使成爲完全二叉樹在進行存儲,
但是對於非完全二叉樹,可能要浪費很多的空間。所以並不是很理想。
2.二叉樹的鏈式存儲結構
二叉樹的鏈式存儲結構就是用指針建立二叉樹中節點之間的關係,二叉樹最常用的鏈式存儲結構是二叉鏈表。二叉樹的二叉鏈表存儲結構是一種常用的二叉樹存儲結構。二叉鏈表存儲結構的優點是結構簡單,可以方便的構造任何形狀的二叉樹,並可以方便的實現二叉樹的大多數操作。
二叉鏈表存儲結構的缺點是,查找當前節點的雙親節點操作實現比較麻煩。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章