迷宫问题求解
2013-04-05 20:00
260 查看
Status MazePath(PosType start,PosType end) /* 算法3.3 */ { /* 若迷宫maze中存在从入口start到出口end的通道,则求得一条 */ /* 存放在栈中(从栈底到栈顶),并返回TRUE;否则返回FALSE */ SqStack S; SElemType e; PosType curpos; InitStack(&S); curpos=start; do{ if(Pass(curpos)) { FootPrint(curpos); e.ord=curstep;//通道块在路径上的序号 e.seat.x=curpos.x; e.seat.y=curpos.y; e.di=0; Push(&S,e); curstep++; if(curpos.x==end.x&&curpos.y==end.y) return TRUE; curpos=NextPos(curpos,e.di); } else { if(!StackEmpty(S)) { Pop(&S,&e); curstep--; while(e.di==3&&!StackEmpty(S)) /* 前一位置处于最后一个方向(北) */ { MarkPrint(curpos); Pop(&S,&e); curstep--; } if(e.di<3) { e.di++; Push(&S,e); curstep++; curpos=NextPos(curpos,e.di); } } } }while(!StackEmpty(S)); return FALSE; }
相关文章推荐
- 深度优先搜索求解迷宫问题
- Java算法---华为oj迷宫问题求解(广度优先搜索)
- 栈的应用——求解迷宫问题
- 算法求解:MxN迷宫问题
- 迷宫求解最短路径问题java版
- 第一篇:算法之使用递归求解迷宫问题
- 利用非循环顺序队列采用广度搜索法求解迷宫问题(一条路径)
- 数据结构中的栈,在解决很多问题都有用处,比如括号匹配,迷宫求解,表达式求值等等 java中有封装好的类,可以直接调用。
- ACM水题-Rescue LK(AC,迷宫问题,DFS求解)
- 最短路求解迷宫问题
- 运用栈求解迷宫问题C/C++
- 算法之使用递归求解迷宫问题
- 数据结构:栈和队列-迷宫问题求解
- 迷宫问题的求解
- 数据结构和算法设计(迷宫求解问题的栈和队列的实现)
- 栈的应用——迷宫问题的求解
- DFS--求解迷宫问题
- 用栈和队列求解迷宫问题
- 栈求解迷宫问题
- 迷宫问题求解之“穷举+回溯”(一)(转载)