深度優先搜尋

圖的深度優先遍歷(或搜尋)類似於樹的深度優先遍歷。這裡唯一的問題是,與樹不同,圖形可能包含迴圈,因此我們可能會再次來到同一節點。為避免多次處理節點,我們使用布林訪問陣列。

下面的演算法介紹了使用 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

https://i.stack.imgur.com/Nxxfb.jpg

https://i.stack.imgur.com/TtAu7.jpg