二叉樹基本概念及性質
阿新 • • 發佈:2019-01-25
二叉樹基本概念:
在電腦科學中,二叉樹是每個節點最多有兩個子樹的樹結構。通常子樹被稱作“左子樹”(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 時為根,除外)
二叉樹的儲存結構:
一、順序儲存結構
按二叉樹的結點“自上而下、從左至右”編號,用一組連續的儲存單元儲存。
答:一律轉為完全二叉樹!
討論:不是完全二叉樹怎麼辦?
方法很簡單,將各層空缺處統統補上“虛結點”,其內容為空
二、鏈式儲存結構