一、常用術語:
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 每棵子樹也是由唯一的根結...