2022年栈的应用-迷宫问题-数据结构-源代码推荐 .pdf
《2022年栈的应用-迷宫问题-数据结构-源代码推荐 .pdf》由会员分享,可在线阅读,更多相关《2022年栈的应用-迷宫问题-数据结构-源代码推荐 .pdf(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; int i
2、nitStack(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) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - if(s-
3、top - s-base = s-size) s-base = (lujing *)realloc(s-base, (s-size+INCREMENT)*sizeof(lujing); if(!s-base) 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-ba
4、se = s-top) return 1; else return 0; int pass( Maze maze,zuobiao dqzb) if (maze.szdqzb.rdqzb.c=1) return 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
5、dqzb, int Dir) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - zuobiao xzb; switch (Dir) case 1: xzb.r=dqzb.r; xzb.c=dqzb.c+1; break; case 2: xzb.r=dqzb.r+1; xzb.c=dqzb.c; break; case 3: xzb.r=dqzb.r; xzb.c=dqzb.c-1; break; case 4: xzb.r=dq
6、zb.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 = 1; / 探索第一步do if (pass(maze,dqzb) / 当前位置可通过,即是未曾走到过的通道块footPrint(maze,dqzb); / 留下足迹
7、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) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年栈的应用-迷宫问题-数据结构-源代码推荐 2022 应用 迷宫 问题 数据结构 源代码 推荐
限制150内