目標
解決兩類問題:
- 第一類問題:從節點A出發,有前往節點B的路徑嗎?
- 第二類問題:從節點A出發,前往節點B的哪條路徑最短?
注意事項
- 我們先用字典構建一個圖模型。
- 你需要按加入順序檢查搜索列表中的元素,否則找到的就不是最短路徑,因此搜索列表必
須是隊列。 - 對於檢查過的元素,務必不要再去檢查,否則可能導致無限循環。
流程
- 用字典構建圖網絡
- 將字典的第一個key對應的數組加入隊列
- while循環,當隊列不爲空時,進入循環體
- 彈出隊列中第一個元素,判斷是否訪問過,
- 沒有訪問過:判斷是否是目標,若是返回True結束,若不是,將這個元素對應的數組加入循環體,並且將該元素標記爲已經訪問過。
- 訪問過:則跳過當前循環,進入下一次循環
- 循環結束,證明沒有找到目標,則返回false
大家如果仍有問題,歡迎一起交流,直接評論即可。freestyle!