需求
“建立由上而下的廣度優先搜尋演算法流程圖:讀取圖形 G 與起始頂點 s,將 s 標記為已訪問並加入佇列;接著當佇列不為空時,取出一個頂點,記錄於 traversal 順序中,並將每個尚未訪問的鄰接頂點標記後加入佇列。輸出 traversal 順序並結束。”
接著試試每個鄰接頂點入列時加入距離標籤。找到目標頂點時停止輸出。
這張圖裡有什麼
看懂背後的決策。
01
FIFO traversal:取出下一個頂點,使 traversal 採用廣度優先而非深度優先。
適合用於無權重圖的 traversal 或最少跳數說明。若圖表用於最短路徑,請加入父節點與距離更新。
常見問題
常見問題
為什麼 BFS 使用佇列?
先進先出佇列會從起始頂點開始,依圖層逐層處理頂點。
鄰接頂點何時會標記為已訪問?
頂點入列時就會標記,避免其他頂點再次將它加入佇列。
這能找出最短路徑嗎?
可以。對無權重圖加入距離與父節點資料後,BFS 能依邊數找出最短路徑。