1.樹的基本概念
樹是一種非線性的資料結構,由n(n>=0)個有限結點組成乙個具有層次關係的集合。把它叫做樹是因為它看起來像一棵倒掛的樹,也就是說它是根朝上,而葉朝下的。它具有以下的特點:每個結點有零個或多個子結點;沒有父結點的結點稱為根結點;每乙個非根結點有且只有乙個父結點;除了根結點外,每個子結點可以分為多個不相交的子樹。
度(節點的度):乙個節點含有的子樹的個數稱為該節點的度。如上圖度為4。
葉節點(終端節點):度為0的節點稱為葉節點。如上圖b,f,j,k,i,e.
非終端節點(分支節點):度不為0的節點。如上圖a,c,d,g,h.
雙親節點(父節點):若乙個節點含有子節點,則這個節點稱為其子節點的父節點。如上圖a(子:b,c,d,e),c(f,g),d(h,i),g(f),h(k)
孩子節點(子節點):乙個節點含有的子樹的根節點稱為該節點的子節點。如上圖b(父:a)。
兄弟節點:具有相同父節點的節點互稱為兄弟節點。如:b,c,d,e互為兄弟節點。
樹的度:一棵樹中,最大的節點的度稱為樹的度。如上圖度為6。
節點的層次:從根開始定義起,根為第一層,根的子節點為第二層。
樹的高度或深度:樹中節點的最大層次。如圖為4層。
堂兄弟節點:雙親在同一層的節點互為堂兄弟。如圖f和h。
節點的祖先:從根到該節點所經分支上的所有節點。如圖a為祖先節點。
子孫:以某節點為根的子樹中任一節點都成為該節點的子孫。所有節點都是a的子孫
森林:有m(m>=0)棵互補相交的樹的集合稱為森林。
2 樹的表示
樹的結構相對線性表就比較複雜,要儲存表示起來就比較麻煩,實際中樹有很多表示方式,如:雙親表示法,孩子表示法,孩子兄弟表示法等等。
typedef
int datatype;
struct node
;
1 基本概念
一棵二叉樹是結點的乙個有限集合,該集合或者為空,或者是由乙個根節點加上兩棵別稱為左子樹和右子樹的二叉樹組成。
二叉樹的特點:
每個結點最多有兩棵子樹,即二叉樹不存在度大於2的結點。
二叉樹的子樹有左右之分,其子樹的次序不能顛倒。
如圖:
2 特殊二叉樹
滿二叉樹:乙個二叉樹,如果每乙個層的結點數都達到最大值,則這個二叉樹就是滿二叉樹。也就是說,如果乙個二叉樹的層數為k,且結點總數是(2^k) -1 ,則它就是滿二叉樹。
完全二叉樹:完全二叉樹是效率很高的資料結構,完全二叉樹是由滿二叉樹而引出來的。對於深度為k的,有n個結點的二叉樹,當且僅當其每乙個結點都與深度為k的滿二叉樹中編號從1至n的結點一一對應時稱之為完全二叉樹。 要注意的是滿二叉樹是一種特殊的完全二叉樹。
3 二叉樹的性質
(1)若規定根節點的層數為1,則一棵非空二叉樹的第i層上最多有2^(i-1)(i>0)個節點
(2)若規定只有根節點的二叉樹的深度為1,則深度為k的二叉樹的最大節點數為(2^k)-1(k>=0)
(3)對任意一棵二叉樹,如果其葉節點的個數為n0,度為2的非葉節點個數為n2, 則n0=n2+1
(4)具有n個節點的完全二叉樹的深度k為log2(n+1)向上取整(向大數取整)
(5)對於具有n個節點的完全二叉樹,如果按照從上至下,從左至右的順序,對所有節點從0編號
序號i的特點:
1)若i>0,雙親節點:(i-1)/2;
2)若2i+14 二叉樹的儲存結構
二叉樹一般可以使用兩種結構儲存,一種順序結構,一種鏈式結構。
4.1 順序結構
順序結構儲存就是使用陣列來儲存,一般使用陣列只適合表示完全二叉樹,因為不是完全二叉樹會有空間的浪費。而現實中使用中只有堆才會使用陣列來儲存,二叉樹順序儲存在物理上是乙個陣列,在邏輯上是一顆二叉樹。
4.2 鏈式儲存結構
二叉樹的鏈式儲存結構是指,用鍊錶來表示一棵二叉樹,即用鏈來指示元素的邏輯關係。 通常的方法是鍊錶中每個結點由三個域組成,資料域和左右指標域,左右指標分別用來給出該結點左孩子和右孩子所在的鏈結點的儲存位址 。
樹 二叉樹的基本概念
樹基本概念 非線性結構,乙個直接前驅,但可能有多個直接後繼 1 n 樹的定義具有遞迴性,即樹中還有樹 根 葉子 森林 有序樹 無序樹 雙親 孩子 兄弟 堂兄弟 祖先 子孫 結點 結點的度 結點的層次 終端結點 分支結點 樹的度 所有結點度中的最大值 max 樹的深度指所有結點中最大的層數 max 或...
二叉樹 基本概念
1.二叉樹的定義 二叉樹的定義是以遞迴形式給出的 一棵二叉樹是結點的乙個有限集合,該集合或者為空,或者是由乙個根節點加上兩棵分別稱為左子樹和右子樹的 互不相交的二叉樹組成。二叉樹有5種基本形態,如圖1所示,任何複雜的二叉樹都是這5種基本形態的復合,其中圖 a 是空二叉樹,圖 b 是單結點的二叉樹,圖...
二叉樹基本概念
五種形態 1.空二叉樹 2.僅有根節點的二叉樹 3.右子樹為空的二叉樹 4.左子樹為空的二叉樹 5.左右子樹都是非空的二叉樹 二叉樹的術語 節點 度 葉子 雙親 兄弟 孩子 子孫 有序樹 無序樹 二叉樹的五種性質 1.二叉樹的第i層至多又2 i 1 個結點 2.深度為k的二叉樹至多有2 k 1個結點...