C语言迷宫问题大全,c语言写的迷宫问题
該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓
下面是程序
#include
#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
#include
/*
初始化迷宮,1表示通道,0表示墻
*/
typedef struct MStackElem
{
int x;
int y;
int val;
}MStackElem;
typedef struct {
MStackElem * base;
MStackElem * top;
int stackSize;
}MStack;
void initStack(MStack *s) {
s->base = (MStackElem *)malloc(STACK_INIT_SIZE * sizeof(MStackElem));
if (!s->base) {
printf("in initStack()...Failed to initalize the MStack ,no enough space! exit now. ");
exit(OVERFLOW);
}
s->top = s->base;
s->stackSize = STACK_INIT_SIZE;
}
void push(MStack *s,MStackElem e) {
if (s->top - s->base >= s->stackSize) {
s->base = (MStackElem *)realloc(s->base, (STACK_INIT_SIZE+STACKINCREMENT) * sizeof(MStackElem));
if (!s->base) {
printf("in push()...Failed to realloc the MStack ,no enough space! exit now. ");
exit(OVERFLOW);
}
s->top = s->base + s->stackSize;
s->stackSize += STACKINCREMENT;
}
*(s->top++) = e;
}
MStackElem getTop(MStack *s) {
if (s->top == s->base) {
printf("in getTop(),empty stack! exit now. ");
exit(ERROR);
}
else {
return *(s->top - 1);
}
}
void pop(MStack *s) {
if (s->top == s->base) {
printf("in pop(),empty stack! exit now. ");
exit(ERROR);
}
else {
--(s->top);
}
}
MStack realPath,path;
int unPass(MStack path,MStackElem cur) {
int flag = 1;
while(path.top != path.base)
{
MStackElem e = *(path.top - 1);
if (e.x == cur.x&& e.y == cur.y)
總結
以上是生活随笔為你收集整理的C语言迷宫问题大全,c语言写的迷宫问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “巴青虫草,雅魅天下 ”巴青县第三届冬虫
- 下一篇: 定制table2excel插件,支持自定