算法與數據結構(c語言)——BinaryTree(一)

二叉樹:樹的一種特殊形態,每個節點的度小於等於2(可以是0、1、2)


二叉樹的五種基本形態

 

  1. 空二叉樹
  2. 僅有根節點的二叉樹
  3. 左子樹爲空二叉樹
  4. 右子樹爲空的二叉樹
  5. 左右子樹都不爲空的二叉樹

 

二叉樹的性質:

  1. 在二叉樹的i層上至多有2^(i-1)個節點
  2. 深度爲k的二叉樹最多有2^k-1個節點
  3. 對於任何一個二叉樹T,如果其終端節點數爲n_0,度爲2的節點數爲n_2,則n_0 = n_2 +1

    N = n_0 + n_1 + n_2

    從孩子-雙親的角度來看,總的節點數也就等於分支數+1(因爲根節點是沒有前驅的,一個節點就是一個分支)

    M = N - 1

    從雙親節點-孩子的角度來看,總的分支數也就是度爲2的節點的分支數 + 度爲1的節點分支數(度爲2的節點有2個分支和其孩子節點相連接,葉子節點是沒有子分支的)

    M = 2n_2 + n_1

    由上可以算得n_0 = n_2 +1

  4. 具有n個節點的 完全二叉樹 深度爲:⌊log₂n⌋ + 1
  5. 對一棵有n個結點的 完全二叉樹(其深度爲⌊log₂n⌋ + 1),則其任一節點i,有

    若i = 1,則是根節點,無雙親,若i > 0,則節點i的雙親節點爲⌊i/2⌋

    若2i > n,則節點i是葉子節點,否則其右孩子就是2i

    如果2i + 1 > n,則節點i無右孩子,否則其右孩子就是節點2i + 1

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