棧實現迷宮演算法

2021-08-07 05:17:01 字數 1513 閱讀 2651

棧實現迷宮回溯演算法

《**實現》

#include 

using

namespace

std;

#include

//#include

#define n 10//矩陣最大行列數

template

class mazestack//迷宮將要用到的棧

~mazestack()

}void push(t& x)

this->_ptr[_size++]=x;

}void pop()

}t& top()

bool empty()

int size()

private:

void expansion()//擴容

delete_ptr;

_ptr=tmp;

_capacity=newcapa;}}

private:

t* _ptr;

size_t _size;

size_t _capacity;

};struct location//位置資訊

bool

operator==(location l)

return

false;

}// location& operator=(location& l)

//

int _row;

int _col;

};bool checkpass(int arr[n],location pos)//判斷是否通路

return

false;

}void initmaze(int (*arr)[n])//初始化迷宮}}

}void printmaze(int (*arr)[n])//列印迷宮

cout

//上cur._row--;

if(checkpass(maze,cur))

cur._row++;

//右cur._col++;

if(checkpass(maze,cur))

cur._col--;

//下cur._row++;

if(checkpass(maze,cur))

cur._row--;

//左cur._col--;

if(checkpass(maze,cur))

cur._col++;

s.pop();

maze[cur._row][cur._col]=3;

}return

false;

}int main()

; initmaze(maze);

printmaze(maze);

run(maze, exp, s, start);

cout

0;}

棧實現迷宮

棧的型別定義 棧是一種特殊的線性表,限定只能在表的一端進行插入和刪除操作的線性表。在表中,允許插入刪除的一端稱為 棧頂 不允許插入刪除的另一端稱為 棧底 沒有元素的棧稱為空棧,插入元素稱為入棧,刪除元素稱為出棧,稱為先進後出。順序棧型別的定義 順序棧的儲存方式是陣列,需要事先為他分配乙個可容納最多元...

使用棧實現迷宮

迷宮是個益智的小遊戲,但是就算是個小遊戲也會有外掛程式吧,那麼就來寫乙個小小的迷宮來玩玩吧 雖然是程式自己走的。但是這個不重要,重要的是,我不用燒腦玩迷宮啊 物件導向實現迷宮 includestruct pos templateclass maze maze int maze void print ...

迷宮演算法( 實現)

迷宮演算法 實現 對於走迷宮,人們提出過很多計算機上的解法。深度優先搜尋 廣度優先搜尋是使用最廣的方法。生活中,人們更願意使用 緊貼牆壁,靠右行走 的簡單規則。下面的 則採用了另一種不同的解法。它把走迷宮的過程比做 染色過程 假設入口點被染為紅色,它的顏色會 傳染 給與它相鄰的可走的單元。這個過程不...