一、二叉樹的定義
二叉樹是一種特殊的樹結構,也是常用的樹結構。二叉樹的儲存和處理比一般的樹簡單,同時一般的樹都能通過
簡單的轉換得到與之對應的二叉樹,
這樣就可以採用二叉樹的儲存結構和有關演算法來解決樹的有關問題。
二叉樹與樹一樣具有遞迴性質,它與樹的區別主要有以下兩點:
1)二叉樹的每個結點至多只有兩棵子樹(即二叉樹中不存在度大於2的結點)
2)二叉樹的子樹有左右之分,其次序不能任意顛倒。
二、二叉樹的性質
性質1 在二叉樹的第i層上至多有2^(i-1)個結點(i>=1)
性質2 深度為k的二叉樹至多有2^k-1個結點
性質3 對任何一顆二叉樹t,如果其終端結點數字n0,度為2的結點數字n2,則n0=n2+1;
因為二叉樹中所有結點的度均小於或等於2,所以其結點總數為 n=n0+n1+n2;
除了根結點外,其餘結點都有乙個分支進入,設b為分支總是,則n=b+1;由於這些分支都是由度為1或2的結點射出
的,所以又有b=n1+2n2,
所以 n=n1+2n2+1 -> n0=n2+1
兩種特殊形態的二叉樹,它們是滿二叉樹和完全二叉樹。
滿二叉樹:深度為k且含有2^k-1個結點的二叉樹
滿二叉樹的特點是:每一層上的結點數都是最大結點數,即每一層i的結點數都具有最大值2^(i-1)
可以對滿二叉樹的結
點進行連續編號,約定編號從根結點起,自上而下,自左至右。由此可以引出完全二叉樹的定義。
完全二叉樹:深度為k的,有n個結點的二叉樹,當且僅當其每乙個結點都與深度為k的滿二叉樹中編號從1至n的結點一一對應時,稱之為完全
二叉樹。
完全二叉樹的特點是:
1)葉子結點只可能在層次最大的兩層上出現
2)對任一結點,若其右分支下的子孫的最大層次為l,則其左分支下的子孫的最大層次必為l或l+1.
性質4和性質5是完全二叉樹的兩個重要特性
性質4 具有n個結點的完全二叉樹深度為[log2(n)]+1(不大於log2(n)的最大整數);
根據性質2和完全二叉樹的定義有
2^(k-1)-1
於是k-1 <= log2n < k;
性質5 如果對一棵有n個結點的完全二叉樹(其深度為[log2(n)]+1)的結點按層序編號(從第1層到第[log2(n)]+1層,每層從左到右),
則對任一結點i(1<=i<=n),有
1)如果i = 1,則結點i是二叉樹的根,無雙親;如果i > 1,則其雙親parent(i)是[i/2].
2)如果2i > n,則結點i無左孩子(結點i為葉子結點);否則其左孩子lchild(i)是結點2i;
3)如果2i+1 > n,則結點i無右孩子;否則其右孩子rchild(i)是結點2i+1.
三、二叉樹的儲存結構
1.順序儲存結構
二叉樹的順序儲存表示:
#define maxtsize 100 /*二叉樹的最大結點數*/
typedef telemtype sqbitree[maxtsize];
sqbitree bt;
這種順序儲存結構僅適用於完全二叉樹。
2.鏈式儲存結構
因為用順序儲存結構可能會造成儲存空間的極大浪費,對於一般二叉樹更適合採用鏈式儲存結構。
由二叉樹的定義,二叉樹的結點由乙個資料元素和分別指向其左、右子樹的兩個分支構成,則表示二叉樹的鍊錶中的
結點至少
包含3個域:資料域和左、右指標域。
有時,為了方便找到結點的雙親,還可在結點結構中增加乙個指向其雙親結點的指標域。利用這兩種結點結構所得二
叉樹的儲存結構分別稱之
為二叉鍊錶和三叉鍊錶。 在
含有n個結點的二叉鍊錶中有n+1個空鏈域。因為在n個結點的二
叉鍊錶中,必有2n個鏈域。除根結點外,每個結點
有且僅有乙個雙親的,所以只會有n-1
個結點的鏈域存放指標,空指標數目 = 2n-(n-1) = n+1;
可以利用這些空鏈域儲存其他有用資訊,從而得到另一種鏈式儲存結構——線索鍊錶
二叉樹的二叉鍊錶儲存表示:
typedef struct bitnode
bitnode,*bitree;
二叉樹的三叉鍊錶儲存表示:
typedef struct tritnode
tritnode,*tritree;
二叉樹的定義與性質
二叉樹的定義 二叉樹是樹形結構的乙個重要型別。許多實際問題抽象出來的資料結構往往是二叉樹的形式,即使是一般的樹也能簡單地轉換為二叉樹,而且二叉樹的儲存結構及其演算法都較為簡單,因此二叉樹顯得特別重要。二叉樹 binarytree 是n n 0 個結點的有限集,它或者是空集 n 0 或者由乙個根結點及...
二叉樹性質
1.在二叉樹的第i層上最多有2i 1 個節點 i 1 用歸納法證明 歸納基 i 1 層時,只有乙個根結點,2i 1 20 1 歸納假設 假設i k時,命題成立 歸納證明 二叉樹上每個結點至多有兩棵子樹,則 第 k 1 層的結點數 最多為2k 1 x 2 2k 1 1 2.二叉樹中如果深度為k,那麼最...
二叉樹性質
二叉樹有以下幾個性質 todo 上標和下標 性質1 二叉樹第i層上的結點數目最多為2 i 1 性質2 深度為k的二叉樹至多有2 1個結點 k 1 性質3 包含n個結點的二叉樹的高度至少為log2 n 1 性質4 在任意一棵二叉樹中,若終端結點的個數為n0,度為2的結點數為n2,則n0 n2 1。2....