




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
(完整word版)数据结构栈求解迷宫问题C语言版 (完整word版)数据结构栈求解迷宫问题C语言版 (完整word版)数据结构栈求解迷宫问题C语言版 数据结构栈求解迷宫问题(C语言版) /* 数据结构C语言版栈求解迷宫问题 P50-52利用栈求解迷宫问题 编译环境:Dev-C++4.9.9.2 日期:2011年2月12日 */ /***************头文件**********************/ //迷宫坐标位置类型 typedefstruct { intx; //行值 inty; //列值 }PosType; #defineMAXLENGTH25//设迷宫的最大行列为25 typedefintMazeType[MAXLENGTH][MAXLENGTH];//迷宫数组[行][列] typedefstruct//栈的元素类型 { intord;//通道块在路径上的"序号" PosTypeseat;//通道块在迷宫中的"坐标位置" intdi;//从此通道块走向下一通道块的"方向"(0~3表示东~北) }SElemType; //全局变量 MazeTypem;//迷宫数组 intcurstep=1;//当前足迹,初值为1 #defineSTACK_INIT_SIZE10 //存储空间初始分配量 #defineSTACKINCREMENT2 //存储空间分配增量 //栈的顺序存储表示P46 typedefstructSqStack { SElemType*base; //在栈构造之前和销毁之后,base的值为NULL SElemType*top; //栈顶指针 intstacksize; //当前已分配的存储空间,以元素为单位 }SqStack; //顺序栈 /****************实现************************/ // 构造一个空栈S intInitStack(SqStack*S) { //为栈底分配一个指定大小的存储空间 (*S).base=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType)); if(!(*S).base) exit(0); (*S).top=(*S).base; //栈底与栈顶相同表示一个空栈 (*S).stacksize=STACK_INIT_SIZE; return1; } //若栈S为空栈(栈顶与栈底相同的),则返回1,否则返回0。 intStackEmpty(SqStackS) { if(S.top==S.base) return1; else return0; } // 插入元素e为新的栈顶元素。 intPush(SqStack*S,SElemTypee) { if((*S).top-(*S).base>=(*S).stacksize) //栈满,追加存储空间 { (*S).base=(SElemType*)realloc((*S).base, ((*S).stacksize+STACKINCREMENT)*sizeof(SElemType)); if(!(*S).base) exit(0); (*S).top=(*S).base+(*S).stacksize; (*S).stacksize+=STACKINCREMENT; } *((*S).top)++=e; //这个等式的++*优先级相同,但是它们的运算方式,是自右向左 return1; } // 若栈不空,则删除S的栈顶元素,用e返回其值,并返回1;否则返回0。 intPop(SqStack*S,SElemType*e) { if((*S).top==(*S).base) return0; *e=*--(*S).top; //这个等式的++*优先级相同,但是它们的运算方式,是自右向左 return1; } //定义墙元素值为0,可通过路径为1,不能通过路径为-1,通过路径为足迹 //当迷宫m的b点的序号为1(可通过路径),return1;否则,return0。 intPass(PosTypeb) { if(m[b.x][b.y]==1) return1; else return0; } //使迷宫m的a点的序号变为足迹(curstep),表示经过 voidFootPrint(PosTypea) { m[a.x][a.y]=curstep; } //根据当前位 置及移动方向,返回下一位置 PosTypeNextPos(PosTypec,intdi) { PosTypedirec[4]={{0,1},{1,0},{0,-1},{-1,0}};//{行增量,

17****21
实名认证
内容提供者


最近下载
一种胃肠道超声检查助显剂及其制备方法.pdf
201651206021+莫武林+浅析在互联网时代下酒店的营销策略——以湛江民大喜来登酒店为例.doc
201651206021+莫武林+浅析在互联网时代下酒店的营销策略——以湛江民大喜来登酒店为例.doc
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
论《离骚》诠释史中的“香草”意蕴.docx