第6章——廣度優先搜索

目標

     解決兩類問題:

  1. 第一類問題:從節點A出發,有前往節點B的路徑嗎?
  2. 第二類問題:從節點A出發,前往節點B的哪條路徑最短?

注意事項

  1. 我們先用字典構建一個圖模型。
  2. 你需要按加入順序檢查搜索列表中的元素,否則找到的就不是最短路徑,因此搜索列表必
    須是隊列。
  3. 對於檢查過的元素,務必不要再去檢查,否則可能導致無限循環。

流程

  1. 用字典構建圖網絡
  2. 將字典的第一個key對應的數組加入隊列
  3. while循環,當隊列不爲空時,進入循環體
  4. 彈出隊列中第一個元素,判斷是否訪問過,
  5. 沒有訪問過:判斷是否是目標,若是返回True結束,若不是,將這個元素對應的數組加入循環體,並且將該元素標記爲已經訪問過。
  6. 訪問過:則跳過當前循環,進入下一次循環
  7. 循環結束,證明沒有找到目標,則返回false

大家如果仍有問題,歡迎一起交流,直接評論即可。freestyle!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章