在計算機科學中,二叉樹是每個結點最多有兩個子樹的樹結構。通常子樹被稱作“左子樹”(left subtree)和“右子樹”(right subtree)。二叉樹常被用于實現二叉查找樹和二叉堆。
一棵深度為k,且有2^k-1個結點的二叉樹,稱為滿二叉樹。這種樹的特點是每一層上的結點數都是最大結點數。而在一棵二叉樹中,除最后一層外,若其余層都是滿的,并且或者最后一層是滿的,或者是在右邊缺少連續若干結點,則此二叉樹為完全二叉樹。具有n個結點的完全二叉樹的深度為floor(log2n)+1。深度為k的完全二叉樹,至少有2k-1個葉子結點,至多有2k-1個結點。
某二叉樹有5個度為2的結點,則該二叉樹葉子結點數是?
二叉樹中的葉子結點數與度為2的結點數的關系是:度為2的結點數=葉子結點數-1;
所以,葉子結點數=度為2的結點數+1=6。
拓展:
二叉樹是遞歸定義的,其結點有左右子樹之分,邏輯上二叉樹有五種基本形態:
-
空二叉樹——如圖(a);
-
只有一個根結點的二叉樹——如圖(b);
-
只有左子樹——如圖(c);
-
只有右子樹——如圖(d);
-
完全二叉樹——如圖(e)。
注意:盡管二叉樹與樹有許多相似之處,但二叉樹不是樹的特殊情形。
類型
(1)完全二叉樹——若設二叉樹的高度為h,除第 h 層外,其它各層 (1~h-1) 的結點數都達到最大個數,第h層有葉子結點,并且葉子結點都是從左到右依次排布,這就是完全二叉樹。
(2)滿二叉樹——除了葉結點外每一個結點都有左右子葉且葉子結點都處在最底層的二叉樹。
(3)平衡二叉樹——平衡二叉樹又被稱為AVL樹(區別于AVL算法),它是一棵二叉排序樹,且具有以下性質:它是一棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,并且左右兩個子樹都是一棵平衡二叉樹。