迷宮:廣度優先搜索求最短路徑

  1. maze[][]爲迷宮,visit[][]爲訪問記錄,mazec[][]爲步數記錄
  2. 將起點入隊列,並設置狀態
  3. 循環訪問迷宮,當到達迷宮出口或者隊列爲空找不到出口時結束搜索
while(!(i==row && j==col ) || !(path.isEmpty()))
  • 對於當前出隊列的點A,按順序檢查其右、下、左、上四個方位是否未訪問並且可達,若符合條件,四個方位的點都入隊列(四個if)
if(maze[i][j+1] == 0 && visit[i][j+1] == false)
  • 將該方位點入隊列
  • 將該點置爲已訪問
  • 將該點的步數置爲點A的步數+1
node = path.poll();//出隊
i = node.x;
j = node.y;//定位出隊的點的位置
  • 方位探查結束後,隊尾出隊
  • 取得出隊的點A的位置

    返回記錄行走迷宮路線的mazec[row][col]的終點值

這裏寫圖片描述

這裏寫圖片描述

發佈了22 篇原創文章 · 獲贊 5 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章