關於二叉樹

ACyming發表於2024-08-19

二叉樹

滿二叉樹

一顆深度為 \(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\)

簡化這個表示式:

\[n = 2 \times 2^k - 2 + 1\\ n = 2^{k+1} - 1 \]

這正是我們需要的公式。因此,透過數學歸納法,我們證明了對於任意高度 \(h\) 的滿二叉樹,其節點數 \(n\) 都滿足 $ n = 2^h - 1$。

完全二叉樹

完全二叉樹 : 深度為 \(k\) 的,有 \(n\) 個結點的二叉樹,當且僅當其每一個結點都與深度為 \(k\) 的滿二叉樹中編號從 \(1\)\(n\) 的結點一一對應 (特點: 至多隻有最下面兩層的結點的度可以小於 \(2\), 且倒二層如果只有一個孩子,那必是左孩子。)

相關文章