資料結構與演算法

在邊沒有權重的圖中,想求出從起點到各頂點的最少邊數。適合的搜尋方法與所使用的資料結構組合為下列何者?

  1. A廣度優先搜尋與佇列
  2. B深度優先搜尋與堆疊
  3. C廣度優先搜尋與堆疊
查看答案與解析

正確答案:A. 廣度優先搜尋與佇列

廣度優先搜尋依由近到遠的順序拜訪:先是從起點經1條邊可到達的頂點,再來是經2條邊可到達的頂點……。把找到的頂點放入佇列尾端、從前端取出檢查,就能維持這個「由近到遠」的順序,因此第一次到達時的邊數就是最少的邊數。深度優先搜尋(使用遞迴或堆疊)會沿著一條路盡量往前走,可能先經由繞遠的路徑到達,不保證最短。若以堆疊取代佇列,走訪方式就會接近深度優先搜尋。

  • A. 正確。使用佇列就會依離起點由近到遠的順序拜訪,因此能求出最少邊數。
  • B. 深度優先搜尋可能先經由繞遠的路徑到達,不保證最短。
  • C. 使用堆疊會先檢查最後找到的頂點,因此不再是由近到遠的順序。
練習這個領域 前往領域頁面

相關計算工具

資料結構與演算法的其他題目

  1. 在無向圖中,各頂點的相鄰頂點如下:A: B, C / B: A, D, E / C: A, F / D: B / E: B, F / F: C, E。從頂點 A 進行遞迴的深度優先搜尋。相鄰頂點依此處列出的順序檢查,一找到尚未拜訪的頂點就立刻前往。拜訪頂點的順序為下列何者?
  2. 在無向圖中,各邊的權重(距離)為 S−A: 4、S−B: 1、A−B: 2、A−C: 1、B−C: 5、C−T: 3、A−T: 6。以戴克斯特拉演算法求從 S 到 T 的最短路徑時,路徑與長度為下列何者?
  3. 要以戴克斯特拉演算法求出正確的最短路徑,關於圖的條件,下列何者正確?
  4. 工作 A~E 有「A 在 C 之前」「B 在 C 之前」「C 在 D 之前」「B 在 E 之前」「E 在 D 之前」的順序限制。滿足所有限制的工作順序(拓撲排序的結果)為下列何者?
  5. 函數 f(x, y) 定義為「若 y 為0則回傳 x,否則回傳 f(y, x mod y)」。呼叫 f(84, 36) 時的回傳值,以及 f 被呼叫的次數(含第一次呼叫)的組合為下列何者?