#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。迷宮走的規則如下所示 即從某點開始,有八個方向可走,前進...