這個主要是練習棧的使用,當時編了好長時間呢。
以乙個mxn的長方陣表示迷宮,0和1分別表示迷宮中的通路和障礙。設計乙個程式,對任意設定的額迷宮,求出一條從入口到出口的通路,或得出沒有通路的結論。
**如下:
#include "iostream"
using namespace std;
int east=1;
int sou=2;
int west=3;
int nor=4;
int migong[11][10]=;
class point
;class path
;class stack
;//棧函式
int newstack(stack &s)
int push(stack &s,path &e)
path pop(stack &s,path &e)
int empty(stack &s)
int can_pass(path &p)
else
return 0;
}int foot(path p)
path next_point(path p,int d)
break;
p.xy.x++;
} return p;
}int main()
{ int i,j;
cout<
// int d=1;
stack s;
newstack(s);
path previous;
path e,e2;
// e.dir=1;
e.xy.x=1;e.xy.y=1;
// s.push(e);
// push(s,e);
do {
if(can_pass(e))
{
foot(e);
e.dir=1;
push(s,e);
if(e.xy.x==9&&e.xy.y==8)
{cout<
資料結構之迷宮問題
求迷宮問題就是求出從入口到出口的路徑。在求解時,通常用的是 窮舉求解 的方法,即從入口出發,順某一方向向前試探,若能走通,則繼續往前走 否則沿原路退回,換乙個方向再繼續 試探,直至所有可能的通路都試探完為止。為了保證在任何位置上都能沿原路退回 稱為回溯 需要用乙個後進先出的棧來儲存從入口到當前位置的...
資料結構之迷宮問題
迷宮結構如下 定義三個結構體,define size 100 對該迷宮,100個夠用了 define add size 10 每次要增加的大小 define endflag null 出錯時返回的標誌 define row 8 迷宮的行的大小,對應i define col 8 迷宮的列的大小,對應j...
資料結構 之迷宮問題
所謂迷宮,就是在乙個矩陣中,從開始位置有一條通路可以走到最末尾的位置 先畫乙個迷宮,格式為txt,和編譯的資料夾放在一起 在迷宮中,0表示可以走通的路,而1則表示不可走通的牆 首先定義乙個結構體,用來存放行和列 struct pos 接下來從檔案中獲得迷宮 的矩陣 void getmaze int ...