迷宫求解C语言完整代码利用栈
时间: 2023-11-16 19:05:06 浏览: 165
好的,下面是用 C 语言实现的迷宫求解代码。这里我们使用栈来存储路径。
首先,我们需要定义一些常量和结构体:
```
#define N 10 // 迷宫的大小
#define M 2 // 走到下一步所需的步数
#define S 2 // 两种走法:向左或向右
// 定义点的坐标结构体
struct point {
int x, y;
} st;
// 定义栈的结构体
struct stack {
point data[N * N]; // 栈内存储的点
int top; // 栈顶元素的下标
} stk;
```
然后,我们可以实现一个函数来判断某个点是否可以走:
```
// 判断点 p 是否可以走
int pd(point p) {
// 判断是否越界
if (p.x < 0 || p.x >= N || p.y < 0 || p.y >= N) return 0;
// 判断是否是障碍
if (maze[p.x][p.y] == 1) return 0;
// 判断是否已经走过
if (book[p.x][p.y] == 1) return 0;
return 1;
}
```
接下来,我们可以实现一个函数来搜索迷宫:
```
// 搜索迷宫
void dfs(point p) {
// 将当前点压入栈中
stk.data[stk.top++] = p;
// 标记当前点已经走过
book[p.x][p.y] = 1;
// 如果到达终点,则输出路径
if (p.x == N - 1 && p.y == N - 1) {
for (int i = 0; i < stk.top; i++) {
printf("(%d,
阅读全文