利用廣度優先搜尋來解決迷宮中的最短路徑,需要把佇列稍微做下調整,博主用的順序佇列,也可以用鏈式,鏈式搜尋起來方便些。
之前看到有校友用dfs來解決的,但是相對來說演算法複雜度要高些,因為dfs一般用來解決所有路徑數目問題。
typedef
structsqqueue;
直接甩**:
#include
#include
using
namespace
std;
typedef
structmazepos;
char maze[104][104];
int x, y;
typedef
structsqqueue;
void initqueue(sqqueue &q)
bool emptyqueue(sqqueue &q)
void enqueue(sqqueue &q, mazepos e)
void dequeue(sqqueue &q, mazepos &e)
}void bfs(sqqueue &q, mazepos start, mazepos end, int &flag)
if((e.x + 1) < x && (maze[e.x + 1][e.y] != '#'))
if((e.y + 1) < y && (maze[e.x][e.y + 1] != '#'))
if((e.x - 1) >= 0 && (maze[e.x - 1][e.y] != '#'))
if((e.y - 1) >= 0 && (maze[e.x][e.y - 1] != '#'))
}}int main()
for(i = 0; i < x; i++)
for(j = 0; j < y; j++)
if(maze[i][j] == 'e')
}bfs(q, start, end, flag);
if(flag)
cout
<1
cout
0;}
迷宮問題高階
是乙個關於二維迷宮的題目。我們要從迷宮的起點 s 走到終點 e 每一步我們只能選擇上下左右四個方向中的乙個前進一格。w 代表牆壁,是不能進入的位置,除了牆壁以外的地方都可以走。迷宮內的 d 代表一道上鎖的門,只有在持有鑰匙的時候才能進入。而 k 則代表了鑰匙,只要進入這一格,就會自動地拿到鑰匙。最後...
c c 高階之路
c c 從入門到高手所有必備pdf書籍收藏,喜歡的朋友支援下吧 c c和指標 pdf高畫質版 c程式語言 完美中文版pdf the c programming language 英文原版 c的缺陷與陷阱 pdf高畫質版 你必須知道的495個c語言問題 完美pdf c專家程式設計 高畫質版pdf 中英...
C C 高階語法 引用
引用就是物件的另乙個名字。在實際程式中,引用主要用作函式的形參。引用是一種復合型別,通過在變數名前新增 符號來定義。引用必須用與該引用同型別的物件初始化。int var 12 int num var 沒問題,將int型的引用指向int型的物件 char ch var 錯誤,char型別的物件不能指向...