1. 程式人生 > >二叉樹基本概念及性質

二叉樹基本概念及性質

二叉樹基本概念:

在電腦科學中,二叉樹是每個節點最多有兩個子樹的樹結構。通常子樹被稱作“左子樹”(left subtree)和“右子樹”(right subtree)。二叉樹常被用於實現二叉查詢樹和二叉

堆。二叉樹的每個結點至多隻有二棵子樹(不存在度大於2的結點),二叉樹的子樹有左右之分,次序不能顛倒。二叉樹的結構最簡單,規律性最強。可以證明,所有樹都能轉為唯一對應的二叉樹,不失一般性

二叉樹基本性質:

性質1: 在二叉樹的第i層上至多有2i-1個結點(i>0)

性質2: 深度為k的二叉樹至多有2k-1個結點(k>0)

性質3: 對於任何一棵二叉樹,若2度的結點數有n2個,則葉子數(n0)必定為n2+1 (即n0=n2+1)

滿二叉樹:一棵深度為k 且有2k -1個結點的二叉樹。(特點:每層都“充滿”了結點)

完全二叉樹:深度為k 的,有n個結點的二叉樹,當且僅當其每一個結點都與深度為k 的滿二叉樹中編號從1至n的結點一一對應。理解:(k-1層與滿二叉樹完全相同,第k層結

點盡力靠左)

性質4: 具有n個結點的完全二叉樹的深度必為 :log2n取下整+1

性質5: 對完全二叉樹,若從上至下、從左至右編號,則編號為i 的結點,其左孩子編號必為2i,其右孩子編號必為2i+1;其雙親的編號必為i/2(i=1 時為根,除外)

二叉樹的儲存結構:

一、順序儲存結構

按二叉樹的結點“自上而下、從左至右”編號,用一組連續的儲存單元儲存。

答:一律轉為完全二叉樹!

討論:不是完全二叉樹怎麼辦?

方法很簡單,將各層空缺處統統補上“虛結點”,其內容為空

二、鏈式儲存結構