the code:
// 資料結構迷宮.cpp : 定義控制台應用程式的入口點。
//#include "stdafx.h"
#include #include#include#include#define n 4 //定義迷宮為4*4
using namespace std;
struct pot //為記錄路徑的rec準備,座標(x,y)
};class maze
;private:
void create();
void clearrec();
int pic[n+2][n+2]; //迷宮本身
pot rec[n+1][n+1]; //bfs過程中記錄路徑
};maze::maze()
bool maze::find() //使用bfs尋求最短路徑
if(pic[qu.front().x+1][qu.front().y]!=1 && rec[qu.front().x+1][qu.front().y]==n)
if(pic[qu.front().x][qu.front().y+1]!=1 && rec[qu.front().x][qu.front().y+1]==n)
if(pic[qu.front().x-1][qu.front().y]!=1 && rec[qu.front().x-1][qu.front().y]==n)
qu.pop();
} return false;
}void maze::path()
{ int a=n,b=n;
while(pic[a][b]!=2)
{ cout<<"("<
迷宮問題bfs
迷宮問題 採用佇列的廣度優先遍歷 bfs 思想是從乙個頂點v0開始,輻射狀地優先遍歷其周圍較廣的區域 找到的解為最優解 include define m 8 define n 8 define maxsize 1000 typedef struct box typedef struct qutype...
迷宮問題bfs
小明置身於乙個迷宮,請你幫小明找出從起點到終點的最短路程。小明只能向上下左右四個方向移動。輸入包含多組測試資料。輸入的第一行是乙個整數t,表示有t組測試資料。每組輸入的第一行是兩個整數n和m 1 n,m 100 接下來n行,每行輸入m個字元,每個字元表示迷宮中的乙個小方格。字元的含義如下 s 起點 ...
迷宮問題(BFS)
給定乙個大小為n m的迷宮,由通道 和牆壁 組成,其中通道s表示起點,通道g表示終點,每一步移動可以達到上下左右中不是牆壁的位置。試求出起點到終點的最小步數。本題假定迷宮是有解的 n,m 100 樣例輸入 10 10 s g 這道題目以及解法均來自 挑戰程式設計競賽 第2版 第34頁 36頁 書中解...