迷宮問題的DFS解決(非最短)

2021-08-29 18:50:38 字數 761 閱讀 6156

#include #include#includeusing namespace std;

int a[7][7]=, ,

, ,, , };

struct point;

bool operator ==(const point &rhs)

};//判斷當前的位置是否可以通過

int pass(point node)

//當前位置移動到下一塊

point nextpos(point n,int direction)

void f (point n,point m)

q.push(curnode);

//a[curnode.row][curnode.col]=1;

curnode.p = 1;

curnode = nextpos(curnode, 1);

}//將可以通過的位置入棧

if (curnode == endnode)

curnode = q.top();

for (int i = 2; i <= 4; i++)

//遍歷4個方向

if (key == -1) q.pop();//如果四個方向都不行就出棧

} if (q.empty())

//如果沒有路徑輸出find false

else

while (!q.empty())

//反向輸出路徑

}int main()

迷宮問題的DFS解決和BFS解決

迷宮問題 定義乙個二維陣列 int maze 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,它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求程式設計序找出從左上角到右下角的最短路線。input 乙個...

迷宮問題dfs

迷宮問題 棧作為深度優先遍歷 dfs 採用的搜尋方法的特點是盡可能先對縱深方向進行搜尋 可以最快的找到解 include define m 8 define n 8 define maxsize 1000 typedef struct box typedef struct sttype 迷宮問題常用...

迷宮問題dfs

j.迷宮問題 migong problem 1737 discussion description 設有乙個n n 2 n 10 方格的迷宮,入口和出口分別在左上角和右上角。迷宮格仔中分別放0和1,0表示可通,1表示不能,入口和出口處肯定是0。迷宮走的規則如下所示 即從某點開始,有八個方向可走,前進...