徹底二叉樹的性質
定義
滿二叉樹
: 一棵深度爲k,且有 \(2^{k+1}-1\) 個節點的二叉樹,稱爲滿二叉樹(Full Binary Tree)。 這種樹的特色是每一層上的節點數都是最大節點數。spa
徹底二叉樹
: 而在一棵二叉樹中,除最後一層外,若其他層都是滿的,而且最後一層或者是滿的,或者是在右邊缺乏連續若干節點,則此二叉樹爲徹底二叉樹(Complete Binary Tree)。3d
高度(深度)
: 即層數k,注意【根】定義爲\(height(root)=0\)。blog

性質
- 具備n個節點的徹底二叉樹的深度爲 \(k=log_{2}n\) 。
- 【滿二叉樹】\(i\)層的節點數目爲:\(2^i\)
- 【滿二叉樹】節點總數和深度的關係:\(n=\sum_{i=0}^{k}2^i = 2^{k+1}-1\)
- 【徹底二叉樹】最後一層的節點數爲:\(n-(2^k - 1) = n + 1 -2^k\) (由於除最後一層外,爲【滿二叉樹】)
- 【徹底二叉樹】左子樹的節點數爲(總節點爲n):
\[ l(n) = \begin{cases} n-2^{k-1}, & n+1-2^k \le 2^{k-1} \text{ 由於最後一層所有都在左子樹,右子樹爲【滿二叉樹】高度爲 k-2}\\ 2^{k}-1, & n+1-2^k \gt 2^{k-1} \text{ 由於左子樹爲滿二叉樹,高度爲k-1} \end{cases} \]
- 【徹底二叉樹】右子樹: \(r(n) = n-l(n)\)