資料結構之迷宮

2021-06-03 01:34:35 字數 1057 閱讀 5894

這個主要是練習棧的使用,當時編了好長時間呢。

以乙個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 ...