二叉樹簡介

二叉樹定義:

    n個結點的有限集合,該集合或者爲空集,或者由一個根結點和兩棵互不相交的、分別稱爲根結點的左子樹和右子樹的二叉樹組成。

滿二叉樹

    所有分支結點(非葉子結點)都有左子樹和右子樹,並且所有葉子都在同一層上,這樣的二叉樹成爲滿二叉樹。葉子只出現在最下一層;非葉子結點的度一定是2;同樣深度的二叉樹中,滿二叉樹的結點數和葉子數最多。

完全二叉樹

    按照層序編號,所有結點的編號都與滿二叉樹對應的二叉樹。葉子結點只能出現在最後兩層,最下層作連續,次下層右連續

二叉樹的性質

1.在二叉樹的第i層上最多有(2的i-1次方)個結點。(數學歸納法)

2.在深度爲k的二叉樹中,最多有(2的k次方-1)個結點。(等比數列求和)

3.度爲2的結點數n2與度爲0的結點數n0有如下關係:n0 = n2 + 1(結點數與連接線數的關係)

4.n個結點的完全二叉樹的深度爲(log2爲底n的向下取整+1)(性質2+不等式)

5.

 二叉樹的存儲結構

順序存儲:數組下標爲對應的完全二叉樹的層序編號

 

 

鏈式存儲:二叉鏈表,一個數據域,兩個指針域分別指向左右孩子

 

  1. typedef struct BiTNode{ 
  2.     ElemType data; 
  3.     struct BiTNode *lchild; 
  4.     struct BitNode *rchild; 
  5. }BitNode,*BiTree 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章