資料結構 樹和二叉樹

2021-09-30 01:42:09 字數 1588 閱讀 2193

定義

二叉樹是n(n≥0)個節點的有限集合,該集合或者為空集(稱為空二叉樹),或者由乙個根節點和兩棵互不相交的、分別稱為根節點的左子樹和右子樹的二叉樹組成。

特點:

每個節點最多有兩棵子樹;

二叉樹是有序的,其次序不能任意顛倒

斜樹

1.所有節點都只有左子樹的二叉樹稱為左斜樹;

2.所有節點都只有右子樹的二叉樹稱為右斜樹;

3.左斜樹和右斜樹統稱為斜樹。

4.在斜樹中,每一層只有乙個節點;

5.斜樹的節點個數與其深度相同。

滿二叉樹

介紹:在一棵二叉樹中,如果所有分支節點都存在左子樹和右子樹,並且所有葉子都在同一層上。

特點:1.葉子只能出現在最下一層。

2.只有度為0和度為2的節點

3.滿二叉樹在同樣深度的二叉樹中節點個數最多。

4.滿二叉樹在同樣深度的二叉樹中葉子節點個數最多。

完全二叉樹

定義:對一棵具有n個節點的二叉樹按層序編號,如果編號為i(1≤i≤n)的節點與同樣深度的滿二叉樹中編號為i的節點在二叉樹中的位置完全相同。

簡單來講就是k層的完全二叉樹前k-1層和k-1層的滿二叉樹一樣,在第k層自左端數起,葉子節點都是連續的。

或者說在滿二叉樹中,從最後乙個節點開始,連續去掉任意個節點,即是一棵完全二叉樹。

特點:1.葉子節點只能出現在最下兩層,且最下層的葉子節點都集中在二叉樹的左部。

2.完全二叉樹中如果有度為1的節點,只可能有乙個,且該節點只有左孩子。

3.深度為k的完全二叉樹在k-1層上一定是滿二叉樹。

基本性質

1.二叉樹的第 i 層上最多有2i-1個節點(i≥1)

2.一棵深度為k的二叉樹中,最多有2k-1個節點,最少有k個節點。

3.深度為k且具有2k-1個節點的二叉樹一定是滿二叉樹

4.深度為k且具有k個節點的二叉樹不一定是斜樹。(可能左右交錯)

5.在一棵二叉樹中,如果葉子節點數為n0,度為2的節點數為n2,則有: n0=n2+1。 (簡單證明如下:

1.二叉樹總節點數 =度為0的節點數+度為1的節點數+度為2的節點數

2.除根節點之外每個節點均有乙個入度,而入度來自於度數不為零的節點的貢獻(總節點數-1 == 度為1的節點數+2度為2的節點數)

3.1和2聯立消去度數為1的節點數以及總節點數即可

6.具有n個節點的完全二叉樹的深度為[log2n]+1 ([ ]表示向下取整)

7.若將n個節點的完全二叉樹從1開始層序標號,則有如下性質:

1.根節點標號為1.

2.節點 i(i>1) 的雙親節點是i/2,根節點無雙親節點

3.節點 i 的左兒子標號為 2i,右兒子為 2*i+1 ,若左(右)兒子標號超過n,則無左(右)兒子

二叉樹的順序儲存結構就是用一維陣列儲存二叉樹中的節點,並且節點的儲存位置(下標)應能體現節點之間的邏輯關係——父子關係。

普通二叉樹需按照完全二叉樹的編號方式編號,然後以完全二叉樹的形式儲存到一維陣列中,造成很多浪費,故二叉樹的順序儲存結構一般僅儲存完全二叉樹.

資料結構 樹和二叉樹

第一節 二叉樹的定義與基本操作 定義 我們把滿足以下兩個條件的樹型結構叫做二叉樹 binary tree 1 每個結點的度都不大於2 2 每個結點的孩子結點次序不能任意顛倒。由定義得出 二叉樹的每個結點只能含有0 1或2個孩子,且有左右之分。1 二叉樹的五種基本形態 2 二叉樹性質 性質1 二叉樹第...

資料結構 樹和二叉樹

一 樹的邏輯結構 1 樹的定義採用遞迴方法 2 樹的基本術語 結點的度 結點所擁有的子樹的個數 樹的度 樹中各結點度的最大值 葉子結點 度為0的結點 終端結點 分支結點 度不為0的結點 非終端結點 結點所在層數和高度 層序編號 從上到下,從左到右 有序樹 無序樹 如果一顆樹中結點的各子樹從左到右是有...

資料結構 樹和二叉樹(二)

二叉樹 1 術語 其實樹中有很多術語的,這個是我們學習樹形結構必須掌握的。1 父節點,子節點,兄弟節點 這個就比較簡單了,b和c的父節點就是a,反過來說就是b和c是a的子節點。b和c就是兄弟節點。2 結點的度 其實 度 就是 分支數 比如a的分支數有兩個 b和c 那麼a的度為2。3 樹的度 看似比較...