數據結構:樹

1、什么是樹?

在計算機科學中,(英語:tree)是一種抽象數據類型,用來模擬具有樹狀結構性質的數據集合。它是由n(n>0)個有限節點組成一個具有層次關系的集合。

2、樹的相關術語

  • 節點的度:一個節點含有的子樹的個數稱為該節點的度;
  • 樹的度:一棵樹中,最大的節點的度稱為樹的度;
  • 葉節點或終端節點:度為 0 的節點;
  • 非終端節點或分支節點:度不為 0 的節點;
  • 父親節點或父節點:若一個節點含有子節點,則這個節點稱為其子節點的父節點;
  • 孩子節點或子節點:一個節點含有的子樹的根節點稱為該節點的子節點;
  • 兄弟節點:具有相同父節點的節點互稱為兄弟節點;
  • 節點的層次:從根開始定義起,根為第1層,根的子節點為第2層,以此類推;
  • 深度:對于任意節點n, n的深度為從根到n的唯一路徑長,根的深度為 0;
  • 高度:對于任意節點n, n的高度為從n到一片樹葉的最長路徑長,所有樹葉的高度為 0
  • 堂兄弟節點:父節點在同一層的節點互為堂兄弟;
  • 節點的祖先:從根到該節點所經分支上的所有節點;
  • 子孫:以某節點為根的子樹中任一節點都稱為該節點的子孫。
  • 森林:由 m(m>=0)棵互不相交的樹的集合稱為森林;

3、樹有哪些特點?

  • 每個節點有零個或多個子節點
  • 沒有父節點的節點稱為根節點;
  • 每一個非根節點有且只有一個父節點;
  • 除了根節點外,每個子節點可以分為多個不相交的子樹;

4、樹的高度和深度?

  • 樹的高度是根節點到葉子節點(樹末端)的最大長度
  • 結點的深度是它到根結點的長度

5、舉例說明

圖一 樹.PNG

在圖一中:

  • A是根節點,A沒有父節點。
  • B是E和F的父節點,同時E和F是B的子節點; B也是A的子節點, 而A是B的父節點。
  • A和D有三個子節點,節點的度對應2 , B和E有兩個子節點,節點的度對應2,C和H有1個子節點,節點的度對應1,K、L、F、G、J和M沒有子節點,節點的度對應0。
  • 節點的度為0的節點為葉子節點,所以K、L、F、G、J和M 是葉子節點。
  • 節點的最大度為3,所以該樹的度為3。
  • H、I、J的父節點都是D,所以H、I和J是兄弟節點,同理B、C和D也是兄弟節點。
  • E和F的父結點是B,在第二層,H、I和J的父結點是D也在第二層,所以E、F和H、I、J為堂兄弟節點。
  • A是其他所有節點的祖先; B也是E、F、K和L的祖先。
  • 因為B->E->K的路徑長度為3,B節點的高度為 3。
  • 因為A-> C -> G的路徑長度為3,所以G的深度為3。
  • 因為A->B->E->K的路徑長度為4,所以樹的高度為4。
  • 樹的高度和深度是一樣的,樹的深度也是4。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容