資料: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。既然已經知道了地圖,那麼東東找到妹紙就不難了,請你編乙個程式,寫出東東找到妹紙的最短路...