描述
定義乙個二維陣列:
int maze[5][5] = ;
它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求程式設計序找出從左上角到右下角的最短路線。
輸入乙個5 × 5的二維陣列,表示乙個迷宮。資料保證有唯一解。
輸出左上角到右下角的最短路徑,格式如樣例所示。
樣例輸入
0 1 0 0 0
0 1 0 1 0
0 0 0 0 0
0 1 1 1 0
0 0 0 1 0
樣例輸出
(0, 0)
(1, 0)
(2, 0)
(2, 1)
(2, 2)
(2, 3)
(2, 4)
(3, 4)
(4, 4)
#include
#include
#include
using namespace std;
int arr[5][5];
int visited[5][5];
struct nodeque[25];
int dir[4][2]=,,,};//四個方向
int head=0,tail=0;
void print(int h)
void bfs(int x,int y)
if(x==4&&y==4)
for(int t=0;t<4;t++)
que[tail].parent=head;
visited[que[tail].x ][que[tail].y]=1;
if(que[tail].x==4&&que[tail].y==4)
}head++;
if(head<=tail)
}int main()
迷宮問題求解(1) 簡單迷宮
標頭檔案 include include include include include maze.h define max 100 typedef struct position datatype typedef struct stack stack void stackinit stack s ...
寬度優先搜尋BFS,求解迷宮問題
寬度優先搜尋 bfs 也是搜尋的手段之一。它與深度優先搜尋類似,從某個狀態出發搜尋所有可達的狀態。與dfs不同的是搜尋的順序,寬度優先搜尋總是先搜尋離初始狀態近的狀態。也就是說,它是按照開始狀態 只需1次轉移就可以到達的所有狀態 只需2次轉移就可以到達的所有狀態 以這樣的順序開始搜尋,對於同乙個狀態...
蠻力法 求解迷宮問題 DFS和BFS
問題描述 有如圖8 8的迷宮 o x ooooo xoxxooox xoxxoxxo xo xooooxoo xo 其中,o表示通路方塊,x表示障礙方塊。假設入口位置為 0,0 出口為右下角方塊位置 7,7 設計乙個程式求指定入口到出口的一條迷宮路徑。分析 用n表示迷宮大小,用二維陣列maze存放迷...