1. 程式人生 > >樹的定義及基本術語

樹的定義及基本術語

樹:是n(>=0)個結點的有限集,它或為空樹(n=0);或為非空樹,對於非空樹T:
(1)有且僅有一個稱之為根的結點;
(2)除根結點以外的其餘節點可分為 m(m>0)互不相交的有限集T1,T2,…,Tm,其中每一個集合本身又是一棵樹,並且稱為根的子樹(subtree).
從樹的定義中我們要知道樹的固有特性,即樹的定義中又用到了樹的定義,是一個遞迴的定義.

樹的表現形式:
(1)樹結構
(2)巢狀集合
(3)廣義表
(4)凹凸表示法

樹的基本術語:
(1)結點:樹中的獨立單元。包含一個數據元素和若干指向其子樹的分支.
(2)結點的度:結點擁有的子樹數目稱為結點的度.
(3)樹的度:樹內各結點的度的最大值
(4)葉子:度為0的結點
(5)非終端結點:度不為0的結點,或者稱為分支結點
(6)雙親和孩子:結點的子樹的根稱為該結點的孩子,相應的,該結點稱作孩子的雙親.
(7)兄弟:同一雙親的孩子孩子之間互稱兄弟
(8)祖先:從根到該結點所經分支上的所有結點(包括雙親).
(9)子孫:以某一結點為根的子樹中任一結點都稱為該結點的子孫
(10)層次:結點的層次從跟開始定義起,根為第一層,根的孩子為第二層.(注意根是定義為第一層還是第0層)
(11)堂兄弟:其雙親在同一層的結點
(12)樹的深度:樹中結點的最大成熟
(13)有序樹和無序樹:如果將樹中結點的各子樹看成從左至右是有次序的(即不能互換),則稱該樹為有序樹,否則稱為無序樹。有序樹的根有第一個孩子和最後一個孩子的說法.
(14)森林:是m(m>=0)棵互不相交的樹的集合.對樹中的每個結點而言,其子樹的集合即為森林。

就邏輯結構而言,任何一棵樹都是一個二元組(root,F),root是樹的根結點,F是m棵樹的森林.即root的子樹的集合.