随机迷宫

来源:百度知道 编辑:UC知道 时间:2024/06/17 02:20:08
生成只有唯一解的随机迷宫

中间不要有通路合并或者墙壁合并。

不知道如何做?

新手不怕被笑了。。。。
完全把问题曲解了。。。。
你这答案太离谱,不能给分,不好意思

#define OVERFLOW -2
#define ERROR 0
#define NULL 0
#define true 1
#define TRUE 1
#define false 0
#define FALSE 0
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10

#include <stdio.h>
#include <stdlib.h>
/*
初始化迷宫,1表示通道,0表示墙
*/
int maze[8][8] = {
1,1,0,1,1,1,0,1,
1,1,0,1,1,1,0,1,
1,1,1,1,0,0,1,1,
1,0,0,0,1,1,1,1,
1,1,1,0,1,1,1,1,
1,0,1,1,1,0,1,1,
1,0,0,0,1,0,0,1,
0,1,1,1,1,1,1,1
};

//定义栈元素类型
typedef struct MStackElem
{
int x;//x坐标
int y;//y坐标
int val;//maze[x][y]的值
}MStackElem;

//定义栈
typedef struct {
MStackElem * base;
MStackElem * top;
int stackSize;
}MStack;

//=============Stack的实现========================

//初始化栈-------构造一个空栈
void initStack(MStack *s) {
s->base = (MStackElem