深度優先搜尋
圖的深度優先遍歷(或搜尋)類似於樹的深度優先遍歷。這裡唯一的問題是,與樹不同,圖形可能包含迴圈,因此我們可能會再次來到同一節點。為避免多次處理節點,我們使用布林訪問陣列。
下面的演算法介紹了使用 DFS 進行圖遍歷的步驟:
演算法 DFS(v);
輸入 :圖中的頂點 v
輸出 :邊緣標記為發現邊緣和後備
for each edge e incident on v do
if edge e is unexplored then
let w be the other endpoint of e
if vertex w is unexplored then
label e as a discovery edge
recursively call DFS(w)
else
label e as a backedge