生成迷宮並找出走出迷宮的路徑

2021-08-05 19:20:49 字數 575 閱讀 8499

利用不相交集類生成迷宮,具體見

然後利用無權圖的最短路徑選擇找出走出迷宮的路徑,具體見

首先生成迷宮,然後利用已經生成的迷宮構建出乙個圖。迷宮的所有單元構成圖的頂點,單元間沒有牆則表明兩個頂點相互鄰接。最後以起點為起始頂點找到其到終點的最短路徑。

稍微修改一下graph.hpp,因為頂點下標從0開始,預設初始頂點為0(迷宮入口)。

由迷宮生成圖的**如下所示

//將生成的迷宮構建成圖,然後找出從起點到終點的最短路徑

graph g(n*n);

for(int i=0;iif(!s.getright(i))

);g.setvertex(i+1, vector);}

if(!s.getbottom(i))

);g.setvertex(i+n, vector);}

}g.unweighted(0);

g.printpath(n*n-1);

結果如下所示

最短路徑走出迷宮

題目描述 解題思路 1.採用乙個二維陣列,不斷的接受迷宮地圖 因為有多個地圖 獲取到迷宮地圖後,採用廣度 優先方式走迷宮,找到的第一條路徑一定是最短的路徑,但是深度優先則不一定。2.結構設定 3.採用廣度優先方式走迷宮 將start入佇列,對該位置進行標記,只要佇列不為空,繼續以下步驟,直到到達出口...

走迷宮(用佇列bfs並輸出走的路徑)

用來標記有沒有走過 有沒有在佇列中 int b 11 11 用來記錄bfs的過程 struct node queue q int main cout cout while x 1 y 1 通過b陣列來找到之前是哪乙個點走到x,y的 road k x 1 別忘了把起點放進去 road k y 1 fo...

自動尋找走出迷宮的最短路徑

演算法心得 1.利用廣度優先遍歷 bfs 實現尋找最短路徑 2.利用樹的思想,將每走一步的終點與它的起點相連線,這樣就能在最後把整條最短路徑找出來 設定乙個結構體,儲存座標 struct note que size size 儲存座標和連線指標 struct tree ans size 2 size...