樹的定義:n個節點組成的有限集合。n=0,空樹;n>0,1個根節點,m個互不相交的有限集,每個子集為根的子樹。
1、基本術語:
節點的度:樹中某個節點的子樹的個數。
樹的度:樹中各節點的度的最大值。
分支節點:度不為零的節點。
葉子節點:度為零的節點。
路徑:i->j;路徑長度:路徑經過節點數目減1。
孩子節點:某節點的后繼節點;雙親節點:該節點為其孩子節點的雙親節點(父母節點);兄弟節點:同一雙親的孩子節點;子孫節點:某節點所有子樹中的節點;祖先節點:從樹節點到該節點的路徑上的節點。
節點的層次:根節點為第一層(以此類推);樹的高度:樹中節點的最大層次。
有序樹:樹中節點子樹按次序從左向右安排,次序不能改變;無序樹:與之相反。
森林:互不相交的樹的集合。
2、樹的性質
樹的節點樹為所有節點度數加1(加根節點)。
度為m的樹中第i層最多有m^(i-1)個節點。
高度為h的m次樹至多(m^h-1)/(m-1)個節點。
具有n個節點的m次樹的最小高度為logm( n(m-1) + 1 ) 向上取整。
二叉樹:有限節點集合,或為空,或為一個根節點和兩棵互不相交的左子樹和右子樹組成。
滿二叉樹:每個分支節點都有左孩子節點和右孩子節點。
- 葉子節點都在最下一層
- 只有度為0和2的節點
完全二叉樹:二叉樹的最下面兩層的節點度數小於2,且最下面一層的葉子節點依次排列在該層的最左邊的位置。
- 某節點i為葉子節點或只有左孩子節點,則編號大於i的節點均為葉子節點
- 節點總數為奇數時,度數為1的節點為0;偶數時,度數為1的節點為1
二叉樹的性質
- 非空二叉樹上葉子節點樹等於雙分支節點樹加1
- 總分支數 = n1 + 2n2 ,總分支數 = n - 1 ,總節點數 = n0 + n1 + n2
- 非空二叉樹上第i層上至多有2i - 1個節點
- 高度為h的二叉樹至多有2h - 1個節點
- 完全二叉樹中的 i 節點,若2i ≤ n,i為分支節點,否則為葉子節點;若i節點有左孩子節點,編號為2i,若i節點有右孩子節點,編號為2i + 1