这是一个使用栈来解决的经典问题。
我们可以用一个栈来存储当前路径上的每个坐标,并使用四个循环变量来枚举上下左右四个方向。
在进入每个新方格之前,我们都将其坐标压入栈中。如果遇到了迷宫的出口,则打印路径并退出。如果没有找到出口,则弹出栈顶元素,并继续搜索。
下面是代码示例:
#define MAX_ROW100
#define MAX_COL 100
typedef struct {
int x;
int y;
} Pos;
// 迷宫地图
int maze[MAX_ROW][MAX_COL] = {
// 省略地图数据
};
// 判断坐标 (x, y) 是否合法
int is