迷宮問題BFS

2021-07-23 16:37:21 字數 885 閱讀 4132

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頁 書中解...