重念一次早該補起來的「資料結構與演算法」。這篇筆記下圖形演算法的廣度優先遍歷。
課程相關資訊
[連結]:https://hiskio.com/courses/572/lectures/29898
本篇範圍:Chapter 10
請注意:本系列文章為個人對應課程的消化吸收後,所整理出來的內容。換言之,並不一定會包含全部的課程內容,也有可能會添加其他資源來說明。
內容
廣度優先遍歷
運用 Queue 的先進先出特性,將要拜訪的節點一個個放入。
1. 先設立一個新的 Queue,和要存放結果的 Result
2. 將開始節點放入 queue,並標記為拜訪過了
3. 當 queue 的長度不為 0 時,執行 while-loop
3-1. 將 Queue 的第一個值從隊伍中取出
3-2. 把取出的節點放到 result 內
3-3. 當取出的節點有鄰居,且還沒有拜訪過,那就把其放到 queue 中,並標記為拜訪過了