樹和二叉樹

2021-09-29 12:40:25 字數 2747 閱讀 6945

一、樹的邏輯結構

(一)樹的定義

樹是n(n≥0)個結點的有限集合。當n=0時,稱為空樹。

任意一棵非空樹滿足以下條件:

⑴ 有且僅有乙個特定的稱為根的結點;

⑵ 當n>1時,除根結點之外的其餘結點被分成m(m>0)個互不相交的有限集合t1,t2,… ,tm,其中每個集合又是一棵樹,並稱為這個根結點的子樹。

樹的定義是採用遞迴方法

(二)樹的基本術語

結點的度:結點所擁有的子樹的個數。

樹的度:樹中各結點度的最大值。

葉子結點:度為0的結點,也稱為終端結點。

分支結點:度不為0的結點,也稱為非終端結點。

孩子、雙親:樹中某結點子樹的根結點稱為這個結點的孩子結點,這個結點稱為它孩子結點的雙親結點;

兄弟:具有同乙個雙親的孩子結點互稱為兄弟。

路徑:如果樹的結點序列n1, n2, …, nk有如下關係:結點ni是ni+1的雙親(1<=i祖先、子孫:在樹中,如果有一條路徑從結點x到結點y,那麼x就稱為y的祖先,而y稱為x的子孫。

結點所在層數:根結點的層數為1;對其餘任何結點,若某結點在第k層,則其孩子結點在第k+1層。

樹的深度:樹中所有結點的最大層數,也稱高度。

層序編號:將樹中結點按照從上層到下層、同層從左到右的次序依次給他們編以從1開始的連續自然數。

有序樹、無序樹:如果一棵樹中結點的各子樹從左到右是有次序的,稱這棵樹為有序樹;反之,稱為無序樹。

森林:m (m≥0)棵互不相交的樹的集合。

同構:對兩棵樹,若通過對結點適當地重新命名,就可以使這兩棵樹完全相等(結點對應相等,結點對應關係也相等),則稱這兩棵樹同構。

(三)樹的遍歷操作

1.定義:從根結點出發,按照某種次序訪問樹中所有結點,使得每個結點被訪問一次且僅被訪問一次。

2.分類

(i)前序遍歷

若樹為空,不進行遍歷;否則

⑴ 訪問根結點;

⑵ 按照從左到右的順序前序遍歷根結點的每一棵子樹。

==(ii)後序遍歷 ==

若樹為空,則遍歷結束;否則

⑴ 按照從左到右的順序後序遍歷根結點的每一棵子樹;

⑵ 訪問根結點。

(iii)層序遍歷

從樹的第一層(即根結點)開始,

自上而下逐層遍歷,

在同一層中,按從左到右的順序對結點逐個訪問。

(四)樹的儲存結構

1.雙親表示法

(1)基本思想:用一維陣列來儲存樹的各個結點(一般按層序儲存),陣列中的乙個元素對應樹中的乙個結點,每個結點記錄兩類資訊:結點的資料資訊以及該結點的雙親在陣列中的下標。

data:儲存樹中結點的資料資訊

parent:儲存該結點的雙親在陣列中的下標

(2)定義:

template struct node ;
2.孩子表示法(多重鍊錶表示法)基本思想:鍊錶中的每個結點包括乙個資料域和多個指標域,每個指標域指向該結點的乙個孩子結點。

p1:指標域的個數等於樹的度

data:資料域,存放該結點的資料資訊;

child1~childd:指標域,指向該結點的孩子。

p2:指標域的個數等於該結點的度

data:資料域,存放該結點的資料資訊;

degree:度域,存放該結點的度;

child1~childd:指標域,指向該結點的孩子。

孩子節點:

struct ctnode

;

表頭結點:

template struct cbnode

;

3.孩子兄弟表示法因為某結點的第乙個孩子和右兄弟右兄弟是唯一的,可以設定兩個分別指向該結點的第乙個孩子和右兄弟的指標 。

data:資料域,儲存該結點的資料資訊;

firstchild:指標域,指向該結點第乙個孩子;

rightsib:指標域,指向該結點的右兄弟結點。

定義:

template   struct tnode;

二叉樹 滿二叉樹和完全二叉樹

二叉樹是一種很重要的非線性資料結構,它是樹結構的一種重要的型別 它不是樹結構的特殊情況 其特徵是每個節點最多有兩個子樹。二叉樹的特點 二叉樹每個結點最多有 2個子結點,樹則無此限制 二叉樹中 結點的子樹 分成左子樹和右子樹,即使某結點只有一棵子樹,也要指明該子樹是左子樹,還是右子樹,就是說 二叉樹是...

樹 二叉樹 滿二叉樹 完全二叉樹 完滿二叉樹

目錄名稱作用根 樹的頂端結點 孩子當遠離根 root 的時候,直接連線到另外乙個結點的結點被稱之為孩子 child 雙親相應地,另外乙個結點稱為孩子 child 的雙親 parent 兄弟具有同乙個雙親 parent 的孩子 child 之間互稱為兄弟 sibling 祖先結點的祖先 ancesto...

二叉樹和完全二叉樹

二叉樹規律 假設根節點的高度為0 二叉樹是每個節點至多只有兩個節點的樹 深度為i所在的層至多有 2 i個節點 高度為k的二叉樹至多有2 k 1 1個節點 n0表示度為0的節點,n2表示度為2的節點,存在n0 n2 1 對所有樹有 節點個數 邊數 1 完全二叉樹規律 節點數為n的完全二叉樹,其高度為 ...