用栈实现迷宫问题求解

用栈实现迷宫问题求解,第1张

用栈实现迷宫问题求解,第2张

源程序:

//base.h

#包括

#包括

#包括

#定义正确1

#定义假0

#定义确定1

#定义错误0

#定义溢出-2

typedef int状态;

//stack.h

#包含“base.h”

#define INIT_SIZE 100 //存储空之间的初始分配

#定义增量10 // store 空来分配增量

type struct {//迷宫中R行和C列的位置

int r;

int c;

} PostType

typedef结构{

int顺序;//路径上当前位置的序列号

柱式座椅;//当前坐标

int di//在下一个坐标的方向

} SElemType//堆栈元素类型

typedef结构{

SElemType * base//堆栈基址,构造前和销毁后都是空。

SElemType * top//堆栈顶部

int stackSize//堆栈容量

}栈;//堆栈类型

status init Stack(Stack & S){//Construct空Stack

s . base =(selem type *)malloc(INIT _ SIZE * sizeof(selem type));

如果(!美国基地)

退出(溢出);//存储分配失败。

s . top = s . base;

S.stackSize = INIT _ SIZE

退货OK;

}//初始化堆栈

状态堆栈属性(堆栈){

//如果s是空,则返回TRUE,否则返回FALSE。

if(S.top==S.base)

返回TRUE

返回FALSE

}//StackEmpty

状态推送(堆栈和S,选择类型e){

//插入元素E作为堆栈的新顶部元素

if(s . top-s . base > = s . Stack size){//堆栈已满,加上空

s . base =(selem type *)realloc(s . base,(s . stack size+INCREMENT)* sizeof(selem type));

如果(!美国基地)

退出(溢出);//存储分配失败。

s . top = s . base+s . stack size;

s . stack size+= INCREMENT;

}

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 用栈实现迷宫问题求解

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情