快轉到主要內容

樹 (Tree)

樹 (Tree) 是圖論中極為重要的一環,它是一種沒有環的連通圖,許多演算法競賽題目都圍繞著樹的性質設計。本章節將從樹的定義開始,深入探討二元樹的特性、如何走訪一棵樹,以及如何求解樹直徑等經典問題。

1. 樹的概念
#

介紹樹的基本定義(節點、邊、根、葉)、有根樹與無根樹的區別,以及如何在程式中儲存一棵樹。

2. 二元樹
#

深入探討二元樹 (Binary Tree) 的特殊性質,包含陣列儲存法以及前序、中序、後序走訪的概念。

3. 樹直徑
#

介紹樹直徑(Tree Diameter)的定義,並學習如何透過兩次 DFS 演算法來求出樹上最遠兩點的距離。

4. 樹的走訪
#

學習如何透過 DFS 與 BFS 遍歷樹狀結構,並介紹如何在 DFS 過程中維護路徑資訊與回滾 (Rollback) 技巧。