資料結構 樹 與 二叉樹 森林

2021-07-08 09:53:30 字數 2173 閱讀 1545

一、常用術語:

1)樹的節點

2)節點路徑:

從根節點到該節點所經歷的節點和分支的順序。

3)路徑長度:

節點路徑包含的分支數。

4)節點的度:

節點擁有的子樹的數目。

5)樹的度:

所有節點的度  中 的最大值。

6)葉子節點(終端節點)

樹中 節點的度為0的節點。

7)分支節點(非終端節點)

樹中 節點的度不為0的節點。樹中除了葉子節點的其他節點。

8)孩子節點(子節點)

乙個節點的子節點是指 該節點 子樹的根結點。

9)雙親節點(父節點)

如果乙個節點有子節點,那麼他就是這個子節點的父節點。

10)子孫節點

乙個節點的子孫節點是指這個節點的所有子樹中的任意節點。

11)祖先節點

乙個節點的祖先節點是指該節點的路徑中除此節點之外的所有節點。

12)兄弟節點

具有同一雙親的節點。

13)節點層次

根結點層次為 0,其他節點層次為 父節點層次 +1。

14)樹的深度

所有節點中層次數最大值 +1。

15)有序樹

各節點的所有子樹之間從左到右有嚴格的次序關係,不能互換。

16)無序樹

各節點的所有子樹之間沒有嚴格的次序關係。

17)森林

m(m>=0)棵互不相交的樹所構成的集合。

二、二叉樹(特殊的樹)

1、每個節點最多有兩棵子樹,並且子樹也是二叉樹。

2、二叉樹允許只有右子樹;一般樹中不允許。

3、滿二叉樹

4、完全二叉樹

5、單分支樹

1)定義:所有節點沒有右孩子或沒有左孩子。

2)例如

三、二叉樹的性質

1、二叉樹中第i(i>=0)層上的節點數最多為2的i次冪。

2、深度為h(h>=1)的二叉樹最多有2^h -1 個節點

3、葉子節點為n0,度為2的節點個數為n2則 n0 = n2 +1。

4、具有n個節點的完全二叉樹,其深度為log2(n)+ 1 或者 log2(n+1)

5、對於具有n個節點的完全二叉樹,節點從0開始編號。

1)i = 0  二叉樹的根結點;i>1,i節點的雙親編號(i-1)/2。

2)若2i+1>=n,i節點無左孩子,否則 2i+1 為其左孩子

3)若2i+2>=n,i節點無右孩子,否則 2i+2 為其右孩子

4、二叉樹 與 樹 、森林的轉換

1)二叉樹與樹的轉換

樹—>二叉樹

(1)斷右子(加線)

(2)連兄弟(斷線)

(3)順轉45『

二叉樹—> 樹

(1)逆轉45』(加線)

(2)斷兄弟(斷線)

(3)找雙親

2)二叉樹 《=》樹《=》 森林

森林—> 樹

方法:第一棵樹根結點 為 樹的根結點,其他樹為右孩子

反之亦然

森林 二叉樹

樹 森林轉二叉樹(資料結構)

樹轉二叉樹 1 加線 在所有兄弟結點之間加一條連線。2 去線 樹中的每個結點,只保留它與第乙個孩子結點的連線,刪除它與其它孩子結點之間的連線。3 層次調整 以樹的根節點為軸心,將整棵樹順時針旋轉一定角度,使之結構層次分明。注意第乙個孩子是結點的左孩子,兄弟轉換過來的孩子是結點的右孩子 森林轉換為二叉...

資料結構 樹與二叉樹

一 性質 1 在二叉樹中,第i層的結點總數不超過2 i 1 2 深度為h的二叉樹最多有2 h 1個結點 h 1 最少有h個結點 3 對於任意一棵二叉樹,如果其葉結點數為n0,而度數為2的結點總數為n2,則n0 n2 1 4 具有n個結點的完全二叉樹的深度為int log2n 1 5 給定n個節點,能...

資料結構 樹與二叉樹

1 樹的定義 樹是一種 非線性的資料結構。樹是n n 0 個結點的有限集,在任意一棵非空樹中 1 有且僅有乙個特定的被稱為 根 root 的結點 2 當n 1時,其餘結點可分為m m 0 個互不相交的有限集,其中每個集合本身又是一棵樹,並且稱為根的 子樹 subtree 3 每棵子樹也是由唯一的根結...