廣度優先搜尋(迷宮問題2)

2021-08-15 16:56:44 字數 958 閱讀 1098

/*

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不太合適。題目鏈結點此 假設乙個探險家被困在了地底的迷宮之中,要從當前位置開始找到一條通往迷宮出口的路徑。迷宮可以用乙個二維矩陣組成,有的部分是牆,有的部分是路。迷宮之中有的路...