初學資料結構 樹和二叉樹

2021-08-02 05:25:13 字數 1564 閱讀 9546

一、樹

1、樹的定義和相關術語

(1)結點的度和樹的度

(2)葉子結點和分支結點 

(3)孩子結點、雙親結點、兄弟

(4)祖先和子孫

(5)結點的層數和樹的深度

(6)有序樹和無序樹

(7)有向樹

(8)森林

(9)路徑,路徑長度,樹的路徑長度,結點的帶權路徑長度及樹的帶權路徑長度

2、樹的儲存結構

(1)雙親表示法

(2)孩子表示法

(3)孩子兄弟表示法

二、二叉樹

1、二叉樹的定義

每個結點至多有2棵子樹,且二叉樹的子樹有左右之分,次序不能任意顛倒。

2、二叉樹的性質

(1)一棵非空二叉樹的第i層上最多有2^(i-1)個結點

(2)深度為k的二叉樹至多有2^k-1個結點

(3)對任何一棵二叉樹t,如果其終端結點數為n0,度為2的結點數為n2,則n0 = n2+1。

3、完全二叉樹的性質

特點 :

葉子結點只可能在層次最大的兩層上。

對任一結點,若其右孩子下的子孫最大層次為l,則其左孩子下的子孫的最大層次為l+1;

如果一棵完全二叉樹的某個結點沒有左孩子,則它必定沒有右孩子。

性質:具有n個結點的完全二叉樹深度為lb(n)+1.

4、二叉樹的儲存結構

(1)順序儲存結構:

(2)鍊式儲存結構:

三、遍歷 二叉樹

(1)先序遍歷:

(2)後序遍歷:

(3)中序遍歷:

(4)層次遍歷:

四、表示式樹及其構造

波蘭式及逆波蘭式

五、線索二叉樹

定義:  如果二叉樹左鏈域為空,則指向它的前驅,右鏈域為空,則指向它的後繼。

1、二叉樹的線索化:在遍歷過程中修改空指標域的過程。

(1)空結點為樹根,則表示為空樹

(2)空結點為中序遍歷的第乙個結點的左孩子,空操作表示中序序列第乙個結點的前驅為空。

(3)空結點為中序遍歷的最後結點的右孩子,空操作表示中序遍歷最後乙個結點的後繼為空。

(4)空結點為中序序列中間的某一結點的左孩子,空操作後及返回遞迴的上一層,在這層的後續操作中,將對該中間結點進行指標域的修改,使之能正確指向 其子樹,前驅或後繼。

六、樹和森林與二叉樹

樹轉化為二叉樹:左孩子,右兄弟。

森林轉化二叉樹:左孩子,右兄弟。

遍歷:樹的先序遍歷=二叉樹先序遍歷;樹的後序遍歷=二叉樹中序遍歷

森林先序遍歷=二叉樹先序遍歷;森林中序遍歷=二叉樹中序遍歷

七、哈夫曼樹及其應用

哈夫曼樹:最優二叉樹:

(1)根據給定n個權值構成的n棵二叉樹的集合f,其中沒課二叉樹t中只有乙個帶權為w的根結點,其左右子樹均為空。

(2)在f中選取兩顆根結點權值最小的樹作為左右子樹來構造一顆新的二叉樹,且置新的根結點為左右孩子權值之和。

(3)在f中刪除這兩棵樹並將新的樹加入到f中。

(4)重複步驟(2)和(3),直到f只有一顆樹為止。

應用:哈夫曼編碼。

構造哈夫曼樹;左拐為0,右閃為1;編碼即可。

資料結構 樹和二叉樹

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

資料結構 樹和二叉樹

定義 二叉樹是n n 0 個節點的有限集合,該集合或者為空集 稱為空二叉樹 或者由乙個根節點和兩棵互不相交的 分別稱為根節點的左子樹和右子樹的二叉樹組成。特點 每個節點最多有兩棵子樹 二叉樹是有序的,其次序不能任意顛倒 斜樹 1.所有節點都只有左子樹的二叉樹稱為左斜樹 2.所有節點都只有右子樹的二叉...

資料結構 樹和二叉樹

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