複製鏈接
請複製以下鏈接發送給好友

樹狀結構

鎖定
樹狀結構是一種結構,是一個或多個節點的有限集合,祖先為ancestor。
中文名
樹狀結構
性    質
結構
屬    性
樹狀
祖    先
ancestor

目錄

樹狀結構定義

它滿足:
圖1 圖1
n有一個特定的點稱為根節點(root),n其餘的節點分成n³0個獨立的集合T1, …, Tn,每個集合也都是一個樹狀結構。我們講T1, …, Tn為根節點的子樹(subtree)。
節點與邊:節點代表某項資料,而邊是指由一節點到另一節點的分支。
祖先(ancestor)節點與子孫(descendant)節點:如圖1,A是所有節點的祖先,所有節點是A的子孫;而F是K與L的祖先,K與L是F的子孫。
父節點(parent node)與子節點(children node):如圖1,B直接連到E與F且只差一個階度,則B為E與F的父節點,E與F為B的子節點。
兄弟節點(sibling node):擁有同一父節點的子節點。如:E與F。
葉節點(leaf node)或終點節點(terminal node):沒有子節點的節點。如:J、K等。
非葉節點(non-leaf node)或非終點節點(non-terminal node):有子節點的節點。 如:A、B、F等等。
根節點(root node):沒有父節點的節點,為樹的源頭。 如:A。
分支度(degree):指一個節點有幾個子節點。 如:A為3、B為2、C為1、M為0。
階度(level):為樹中的第幾代,而根節點為第一代,階度為1。
高度(height):指一節點往下走到葉節點的最長路徑。 如:A為3、F為1、L為0。
深度(depth):指從根節點到某一節點的最長路徑。如:C為1、M為3。
樹林(forest):由多個互斥樹(disjoint tree)所組成。 如圖1將A移去便成為樹林。

樹狀結構二元樹

圖2 圖2
二元樹(Binary tree):二元樹裏每一節點的最大分支度為2。 如下右(a)、(b)、(c)。
圖2中(a)稱做左斜樹(left skew tree),每一節點的右子樹皆為空集合。
圖2中(c)稱為滿枝二元樹(fully binary tree),含有節點數共為2k-1
圖2中(b)稱為完整二元樹(complete binary tree),節點排列順序同滿枝二元樹,但節點數小於2k-1
二元樹的第i階最多有2i-1個節點。
如果有一n個節點的完整二元樹,以循序的方式編號,如圖2中(c)。 則任何一個節點i,1 ≤ in,具有以下的特性:
i = 1,則i為根節點,沒有父節點。 而i ≠ 1,其父節點為i// 2(i整除2,即表示小於i/ 2的最大整數)。
若2in,則i的左子節點在2i。 但若2in,則i沒有左子節點。
若2i+1 ≤ n,則i的右子節點在2i+1。 但若2i+1 > n,則i沒有右子節點。
節點i在第[log2 ]+1階。