樹結構
樹(Tree)結構是一種描述非線性層次關係的數據結構,其中重要的是樹的概念。樹是N個數據結點的集合,在該集合中包含一個根結點,根結點之下分佈着一些互不交叉的子集合,這些子集合是根結點的子樹。樹結構的基本特徵如下:
- 在一個樹結構中,有且僅有一個結點沒有直接前驅,這個結點就是樹的根結點。
- 除根結點以外,其餘每個結點有且僅有一個直接前驅。
- 每個結點有任意多個直接後繼。
一個樹結構可以是空,此時空樹種沒有數據結點,也就是一個空集合。如果樹結構中僅包含一個結點,那麼這也是一個樹,樹根便是該節點自身。
從樹的定義可以看出,樹具有層次結構的性質。而從數學的角度來看,樹具有遞歸的特性。在樹中的每個結點及其之後的所有結點構成一個子樹,這個子樹也包括根結點。
基本概念
- 父結點和子節點:每個結點子樹的根稱爲該結點的子結點,相應的,該結點稱爲其子結點的父結點。
- 兄弟結點:具有同一父結點的結點稱之爲兄弟結點。
- 結點的度:一個結點所包含子樹的數量。
- 樹的度:指該樹所有結點中最大的度。
- 葉結點:樹中度爲零的結點稱爲葉結點或終結點。
- 分支結點:樹中度不爲零的結點稱爲分支結點或非終端結點。
- 結點的層數:結點的層數從樹根開始計算,根結點爲第1層、依次向下爲第2、3、……n層
- 樹的深度:樹種結點的最大層數稱爲樹的深度。
- 有序樹:若樹中各個結點的子樹是按一定次序從左向右排列的,稱爲有序樹。
- 無序樹:若樹中各結點的子樹未按照一定次序排列,稱爲無序樹。
- 森林(forest):n(n>0)棵互不相交的樹的集合。
樹的表示
由於樹結構不是一種線性結構,很難用數學式子來表示,這就需要採用全新的方式來表示樹。一般來說,常採用層次括號法。
- 根結點放入一對括號中;
- 根結點的子樹由左至右的順序放入括號中;
- 對子樹做上述相同的處理。
(A(B(E)),(C(F(J),(G(K,L)),(D(H),(I(N,M))))