栈的应用-迷宫问题-数据结构(C语言版)-源代码(直接运行).doc
《栈的应用-迷宫问题-数据结构(C语言版)-源代码(直接运行).doc》由会员分享,可在线阅读,更多相关《栈的应用-迷宫问题-数据结构(C语言版)-源代码(直接运行).doc(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、#include #include #include #define STACK_INIT_SIZE 100 #define INCREMENT 10 typedef struct int r; int c; zuobiao; typedef struct int ord; /在当前坐标上的“标号” zuobiao seat; /坐标 int di; /走向下一通道的方向 lujing; typedef struct int sz1010; Maze; typedef struct SqStack lujing *base; lujing *top; int size; SqStack; in
2、t initStack(SqStack *s) s-base = (lujing *)malloc(STACK_INIT_SIZE*sizeof(lujing) ); if(!s-base) return -1; s-top = s-base; s-size = STACK_INIT_SIZE; return 0; int push(SqStack *s, lujing e) if(s-top - s-base = s-size) s-base = (lujing *)realloc(s-base, (s-size+INCREMENT)*sizeof(lujing); if(!s-base)
3、return -1; s-top = s-base+s-size; s-size += INCREMENT; *s-top+ = e; return 0; int pop(SqStack *s,lujing *e) if(s-top = s-base) return -1; *e = *(-s-top); return 0; int isEmpty(SqStack *s) if(s-base = s-top) return 1; else return 0; int pass( Maze maze,zuobiao dqzb) if (maze.szdqzb.rdqzb.c=1) return
4、1; / 如果当前位置是可以通过,返回1 else return 0; / 否则返回0 void footPrint(Maze &maze,zuobiao dqzb) maze.szdqzb.rdqzb.c=9; void markPrint(Maze &maze,zuobiao dqzb) maze.szdqzb.rdqzb.c=4; zuobiao nextPos(zuobiao dqzb, int Dir) zuobiao xzb; switch (Dir) case 1: xzb.r=dqzb.r; xzb.c=dqzb.c+1; break; case 2: xzb.r=dqzb.r
5、+1; xzb.c=dqzb.c; break; case 3: xzb.r=dqzb.r; xzb.c=dqzb.c-1; break; case 4: xzb.r=dqzb.r-1; xzb.c=dqzb.c; break; return xzb; int mazePath(Maze &maze, zuobiao start, zuobiao end) SqStack *s = (SqStack *)malloc(sizeof(SqStack); initStack(s); zuobiao dqzb = start; / 设定当前位置为入口位置 lujing e; int curstep
6、= 1; / 探索第一步 do if (pass(maze,dqzb) / 当前位置可通过,即是未曾走到过的通道块 footPrint(maze,dqzb); / 留下足迹 e.di =1; e.ord = curstep; e.seat= dqzb; push(s,e); / 加入路径 if (dqzb.r = end.r & dqzb.c=end.c) return 0; / 到达终点(出口) dqzb = nextPos(dqzb, 1); / 下一位置是当前位置的东邻 curstep+; / 探索下一步 else / 当前位置不能通过 if (!isEmpty(s) pop(s,&e)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 应用 迷宫 问题 数据结构 语言版 源代码 直接 运行
限制150内