/*
s01e
0010
0010
0100
0000
s010
0000
0010
01e0
0000
s011
0011
1111
1111
111e
*/#include
#include
typedef
struct node
node;
int main()
; node s[m*n],turn[m*n];
memset(map,0,sizeof(map));
memset(flag,0,sizeof(flag));
memset(s,0,sizeof(s));
for (i=0;imap[i]);
//查詢起點
for (i=0;ifor (j=0;jif (map[i][j]=='s')}}
//不斷迴圈
while (headfor (i=0;i<4;i++)
//判斷終點
if (map[i1][j1]=='e')
printf("%d %d\n",stratx,straty);
//反向輸出
for (i--;i>=0;i--)
printf("%d %d\n",turn[i].x,turn[i].y);
printf("該地圖至少走%d步可以到達終點",head);
return
0; }
}//每算完乙個點的四個方向就將這個點出隊
head++;
}//若上面找不到,則無解
printf("are you kidding me?\n這個地圖有解?");
}
迷宮問題(廣度優先搜尋BFS
給定乙個迷宮,入口為左上角,出口為右下角,問是否有路徑從入口到出口,若有則輸出一條這樣的路徑。注意移動可以從上 下 左 右 上左 上右 下左 下右八個方向進行。迷宮輸入0表示可走,輸入1表示牆。易得可以用1將迷宮圍起來避免邊界問題。本題採用bfs演算法給出解。注意,利用bfs演算法給出的路徑必然是一...
迷宮問題廣度優先搜尋練習
迷宮問題 time limit 1000ms memory limit 65536k total submissions 36134 accepted 20444 description 定義乙個二維陣列 int maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著...
迷宮問題 BFS(廣度優先搜尋)
之前寫迷宮問題用的都是遞迴求解,採用的是dfs深度優先搜尋,從來沒有想到過用廣度優先搜尋,這次碰到了乙個迷宮題,之前的dfs不太合適。題目鏈結點此 假設乙個探險家被困在了地底的迷宮之中,要從當前位置開始找到一條通往迷宮出口的路徑。迷宮可以用乙個二維矩陣組成,有的部分是牆,有的部分是路。迷宮之中有的路...