二叉樹的基本理論知識


樹的特征

樹是一種數據結構,它是n(n>=0)個節點的有限集。n=0時稱為空樹。n>0時,有限集的元素構成一個具有層次感的數據結構。

區別於線性表一對一的元素關系,樹中的節點是一對多的關系。樹具有以下特點:

  1. n>0時,根節點是唯一的,不可能存在多個根節點。
  2. 每個節點有零個至多個子節點;除了根節點外,每個節點有且僅有一個父節點。根節點沒有父節點。

 樹的相關概念

樹有許多相關的術語與概念,在學習樹的結構之前,我們要熟悉這些概念:

子樹:除了根節點外,每個子節點都可以分為多個不相交的子樹。(圖二)

孩子與雙親:若一個結點有子樹,那么該結點稱為子樹根的"雙親",子樹的根是該結點的"孩子"。在圖一中,B、H是A的孩子,A是B、H的雙親。

兄弟:具有相同雙親的節點互為兄弟,例如B與H互為兄弟。

節點的度:一個節點擁有子樹的數目。例如A的度為2,B的度為1,C的度為3.

分支節點:除了葉子節點之外的節點,也即是度不為0的節點。

 

 

 

 

兩種特殊的二叉樹

斜樹

所有節點都只有左子樹的二叉樹叫做左斜樹,所有節點都只有右子樹的二叉樹叫做右斜樹。左斜樹和右子樹統稱為斜樹。
斜樹已經退化成線性結構,二叉樹在查找上表現出來優異性能在斜樹得不到體現。

 

 

滿二叉樹

滿二叉樹要滿足兩個條件:

  1. 所有的節點都同時具有左子樹和右子樹。
  2. 所有的葉子節點都在同一層上。

在同樣深度的二叉樹中,滿二叉樹的節點數目是最多的,葉子數也是最多的。

 

 完全二叉樹

完全二叉樹(Complete Binary Tree) :若設二叉樹的深度為h,除第 h 層外,其它各層 (1~h-1) 的結點數都達到最大個數,第 h 層所有的結點都連續集中在最左邊,這就是完全二叉樹。

 

 

 

二叉樹的存儲結構

1. 二叉樹的順序存儲

^代表不存在的結點。

對於右斜樹,順序存儲結構浪費存儲空間

 

2. 二叉鏈表

鏈表每個結點包含一個數據域和兩個指針域:

其中data是數據域,lchild和rchild都是指針域,分別指向左孩子和右孩子。

 

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com