迷宮問題(高階)C C

2021-07-28 04:34:46 字數 1096 閱讀 9185

利用廣度優先搜尋來解決迷宮中的最短路徑,需要把佇列稍微做下調整,博主用的順序佇列,也可以用鏈式,鏈式搜尋起來方便些。

之前看到有校友用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型別的物件不能指向...