快轉到主要內容

圖論 (Graph)

本章節介紹圖論核心演算法與常見應用。圖論是競賽程式設計中非常重要的一個領域,從最基礎的圖形儲存與遍歷,到進階的二分圖與拓撲排序,都是解決許多複雜關聯問題的基石。

1. 圖論名詞解釋
#

介紹圖 (Graph) 的基本構成元素(節點、邊)以及常見術語,如連通性、度數、環與子圖等概念。

2. 建立一張圖
#

學習如何在程式中儲存圖形結構。介紹鄰接串列 (Adjacency List) 與鄰接矩陣 (Adjacency Matrix) 的實作方式與適用場景。

3. BFS 廣度優先搜尋
#

透過佇列 (Queue) 實作層序遍歷。適用於尋找無權圖的最短路徑以及二維網格上的擴散問題。

4. DFS 深度優先搜尋
#

透過遞迴實作深度遍歷。適用於連通塊計算、窮舉路徑以及許多進階圖論演算法的基礎框架。

5. 二分圖
#

介紹二分圖的定義與性質,並學習如何使用 DFS 染色法來判斷一張圖是否為二分圖。

6. 拓墣排序
#

針對有向無環圖 (DAG) 的排序演算法。介紹 Kahn’s Algorithm 與 DFS 兩種實作方式,常用於處理具有依賴關係的任務排序。