什麼是深度優先搜尋

沿著一條路盡量往前走,走到死路時折返再走另一條路,依此順序拜訪圖或樹的搜尋方法。以遞迴或堆疊實作,用於迷宮搜尋、連通元件與環路的偵測、拓撲排序等。取英文字首也稱為 DFS。

日文名稱: 深さ優先探索

「深度優先搜尋」出現在1領域的3道練習題中(資料結構與演算法等)。

這個名詞所屬的領域: 資料結構與演算法

練習深度優先搜尋的題目

在無向圖中,各頂點的相鄰頂點如下:A: B, C / B: A, D, E / C: A, F / D: B / E: B, F / F: C, E。從頂點 A 進行遞迴的深度優先搜尋。相鄰頂點依此處列出的順序檢查,一找到尚未拜訪的頂點就立刻前往。拜訪頂點的順序為下列何者?

  1. AA, B, C, D, E, F
  2. BA, B, D, E, C, F
  3. CA, B, D, E, F, C
查看答案與解析

正確答案:C. A, B, D, E, F, C

從 A 前往 B,再前往 B 的相鄰頂點中第一個未拜訪的 D。D 的相鄰頂點只有已拜訪的 B,因此回到 B 再前往下一個 E,接著從 E 前往未拜訪的 F,再從 F 前往其相鄰頂點 C。所以順序為 A, B, D, E, F, C。A, B, C, D, E, F 是依離起點由近到遠拜訪的廣度優先搜尋的順序。A, B, D, E, C, F 沒有從 E 前往未拜訪的 F 就折返了,不是深度優先搜尋的順序。

解析中的「深度優先搜尋」

出現「深度優先搜尋」的題目(3題)

  1. 在無向圖中,各頂點的相鄰頂點如下:A: B, C / B: A, D, E / C: A, F / D: B / E: B, F / F: C, E。從頂點 A 進行遞迴的深度優先搜尋。相鄰頂點依此處列出的順序檢查,一找到尚未拜訪的頂點就立刻前往。拜訪頂點的順序為下列何者?
  2. 在邊沒有權重的圖中,想求出從起點到各頂點的最少邊數。適合的搜尋方法與所使用的資料結構組合為下列何者?
  3. 工作 A~E 有「A 在 C 之前」「B 在 C 之前」「C 在 D 之前」「B 在 E 之前」「E 在 D 之前」的順序限制。滿足所有限制的工作順序(拓撲排序的結果)為下列何者?

相關名詞

遞迴 廣度優先搜尋 佇列 堆疊 二元堆積 二元搜尋樹 二分搜尋 時間複雜度(大O符號) 動態規劃 貪婪演算法

前往名詞解釋列表