二叉樹
滿二叉樹
一顆深度為 \(k\) 且有 \(2^k-1\) 個節點的二叉樹,每一層上的檢點樹都是最大值。
每層節點數量
第一層:\(2^{1-1}\) 個點,即 \(2^0 = 1\) 個點。
第二層:\(2^{2-1}\) 個點,即 \(2^1 = 2\) 個點。
第三層:\(2^{3-1}\) 個點,即 \(2^2 = 4\) 個點。
第 \(i\) 層:\(2^{i-1}\) 個點。
一共點的數量
深度為 \(h\) 有 \(2^k-1\) 個節點。
證明
基礎情況:當 \(h = 1\) 時,滿二叉樹只有一個節點(根節點),即 \(n = 2^1 - 1 = 1\) 。這是正確的,因為只有一個節點。
歸納假設:假設對於所有高度小於 \(h\) 的滿二叉樹,節點數公式都是正確的,即對於任意 \(k < h\),有 \(n = 2^k - 1\)。
歸納步驟:現在我們需要證明當 \(h = k + 1\) 時,公式也成立。對於高度為 \(h = k + 1\) 的滿二叉樹,我們可以將其看作是兩個高度為 \(k\) 的滿二叉樹的根節點連線而成。每個高度為 \(k\) 的滿二叉樹有 \(2^k - 1\) 個節點。
因此,高度為 \(h = k + 1\) 的滿二叉樹的總節點數 \(n\) 可以表示為:
$ n = (2^k - 1) + (2^k - 1) + 1 $
因為根節點有兩個子樹,每個子樹有 \(2^k - 1\) 個節點,再加上根節點本身,所以總節點數是 \(2 \times (2^k - 1) + 1\)。
簡化這個表示式:
這正是我們需要的公式。因此,透過數學歸納法,我們證明了對於任意高度 \(h\) 的滿二叉樹,其節點數 \(n\) 都滿足 $ n = 2^h - 1$。
完全二叉樹
完全二叉樹 : 深度為 \(k\) 的,有 \(n\) 個結點的二叉樹,當且僅當其每一個結點都與深度為 \(k\) 的滿二叉樹中編號從 \(1\) 至 \(n\) 的結點一一對應 (特點: 至多隻有最下面兩層的結點的度可以小於 \(2\), 且倒二層如果只有一個孩子,那必是左孩子。)