圖遍歷
出現

廣度優先搜尋是一種演算法,它透過探索距離出發節點越來越遠的節點來訪問圖中的頂點。您可以把它想象成從出發節點向外輻射的波浪。
BFS 的一個典型應用是在無權圖中查詢最短路徑。
- 將源節點或構成起點集的節點入隊。
- 出隊一個節點並檢查它。
- 如果在這個節點中找到目標元素,則退出搜尋並返回結果。
- 否則,將尚未發現的任何後繼節點(直接子節點)入隊。
- 如果佇列為空,則已檢查可達子圖中的所有節點 - 退出搜尋並返回“未找到”。
- 如果佇列不為空,則從步驟 2 重複。

使用堆疊而不是佇列將把該演算法變成深度優先搜尋。DFS 儘可能向下遍歷分支,在遇到死衚衕時回溯。
DFS 的一個典型應用是導航迷宮。
上述方法是非遞迴的,因此為了進行 **後序** 遍歷(這是一個重要的變體),而不是在將所有子節點插入堆疊後處理當前頂點,而是將其插入第二個堆疊。然後從第二個堆疊中彈出頂點並按該順序對它們進行操作。
如果圖和父子關係表示依賴關係,例如各個工種的施工時間表、相關學習單元的課程,那麼清空第二個堆疊建立的順序會建立一個可行的計劃。