程式設計思維與實踐 Week2 作業A 迷宮問題

2021-10-03 08:59:06 字數 1551 閱讀 8126

資料:sample input:

//存放地圖的二維陣列

queue<

int> p;

//用來記錄所到達的點的座標(看學長用的point,但我出問題了,就代替了)

queue<

int> q;

int dx=

;//移動的橫座標

int dy=

;//移動的縱座標

int xx[5]

[5];

//每到達乙個點記錄其前乙個點的座標

int yy[5]

[5];

stack<

int> l;

//最後路徑反向走一遍再輸出得到結果

intmain()

//讀入地圖

} p.

push(0

);//到達的點入佇列

q.push(0

);a[0][

0]=1

;//標記

while

(!p.

empty()

)}if(x==

4&& y==4)

break

;//若到達出頭則停止}

a[4][

4]=-

1;int x=

4,y=4;

l.push(4

);l.push(4

);//入棧

while(1

) a[0]

[0]=

-1;while

(!l.

empty()

)return0;

}想法:即從入口處通過bfs進行搜尋,直到到達終點,結束搜尋。其中注意點的移動,可用兩個陣列來實現上下左右的移動。在每到達乙個點的時候,判斷是否合法,即是否在地圖外,或者這個點是否已經到達了,又或者是不是障礙。然後記錄下每個點的前乙個點的座標,最後到達終點的時候,便可以通過反向遍歷得到路徑,其可以用棧來實現。

程式設計思維與實踐 Week2 作業

b題 倒水問題 bfs 東東有一張地圖,想通過地圖找到妹紙。地圖顯示,0表示可以走,1表示不可以走,左上角是入口,右下角是妹紙,這兩個位置保證為0。既然已經知道了地圖,那麼東東找到妹紙就不難了,請你編乙個程式,寫出東東找到妹紙的最短路線。input 輸入是乙個5 5的二維陣列,僅由0 1兩數字組成,...

程式設計思維與實踐 Week2 作業

b pour water 東東有一張地圖,想通過地圖找到妹紙。地圖顯示,0表示可以走,1表示不可以走,左上角是入口,右下角是妹紙,這兩個位置保證為0。既然已經知道了地圖,那麼東東找到妹紙就不難了,請你編乙個程式,寫出東東找到妹紙的最短路線。輸入 輸入是乙個5 5的二維陣列,僅由0 1兩數字組成,表示...

程式設計思維與實踐 Week2 作業2道

這周作業主要是對廣度優先搜尋bfs的應用,包括求最短路徑的迷宮問題及隱式圖問題 倒水問題。東東有一張地圖,想通過地圖找到妹紙。地圖顯示,0表示可以走,1表示不可以走,左上角是入口,右下角是妹紙,這兩個位置保證為0。既然已經知道了地圖,那麼東東找到妹紙就不難了,請你編乙個程式,寫出東東找到妹紙的最短路...