今天呢,让我们来用栈求解一下数据结构中的著名问题---迷宫问题
我们先“制造”一个迷宫,把它放在Maze.txt文件中
Maze.txt
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
0 0 0 1 1 1 1 1 1 1
1 1 0 1 0 0 0 0 1 1
1 1 0 1 0 1 1 0 1 1
1 1 0 1 1 1 1 1 1 1
1 1 0 0 0 0 0 0 1 1
1 1 0 1 1 1 1 0 1 1
1 1 0 1 1 1 1 0 1 1
1 1 0 1 1 1 1 0 1 1
其中呢,0代表可以走的路,而1呢,则代表的是不可以走的路(墙)
首先呢,我们先来定义一个结构体,用来存储坐标
struct Pos
{
size_t _row;//行
size_t _col;//列
};
接下来呢,我们需要从Maze.txt读入迷宫
void GetMaze(int *maze, size_t N)
{
FILE *fp = fopen("1.txt","r");
if (fp == NULL)
{
throw invalid_argument("Read maze filed");
}
for (size_t i = 0; i < N; ++i)
{
for (size_t j = 0; j < N;)
{
char ch = fgetc(fp);
if (ch == '0' || ch == '1')
{