学习笔记------数据结构(C语言版)栈应用 迷宫寻路
2016-02-03 18:02
543 查看
Status MazePath(MazeType maze[] ,PosType start,PosType end) //若迷宫maze中存在从入口start到出口end的通道,则求得一条存放在栈中 //(从栈底到栈顶),并返回TRUE;否则返回FALSE。 { SqStack S; PosType curpos; int curstep; SElemType e; InitStack(&S); curpos=start; curstep=1; do { if(Pass(curpos,maze)) { FootPrint(curpos,maze); ShowMaze(maze); SetSElemType(&e,curstep,curpos,East); Push(&S,e); if(EqualPosType(curpos,end)) { printf("寻路成功!!!\n"); return TRUE; } curpos=NextPos(curpos,4); curstep++; } else { if(!StackEmpty(S)) { Pop(&S,&e); while(e.di==North&&!StackEmpty(S)) { MarkPrint(e.seat,maze); ShowMaze(maze); Pop(&S,&e); } if(e.di<North) { maze[e.seat.x][e.seat.y]=++e.di; ShowMaze(maze); Push(&S,e); curpos=NextPos(e.seat,e.di); } } } }while(!StackEmpty(S)); printf("寻路失败!!!\n"); return FALSE; }
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 100 个最佳 Ubuntu 应用(中)
- 在 AppImage、Flathub 和 Snapcraft 平台上搜索 Linux 应用
- 如何写好 C main 函数
- 24 个必备的 Linux 应用程序
- 注册表趣味应用小集
- 远程控制技术的应用
- 路由器访问列表的应用
- xDSL技术及其应用
- C#数据结构之顺序表(SeqList)实例详解
- Lua和C语言的交互详解
- Lua教程(七):数据结构详解
- 基于XML的桌面应用
- SQL Server 2008 R2 应用及多服务器管理
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- C#数据结构之队列(Quene)实例详解
- C#数据结构揭秘一
- C#数据结构之单链表(LinkList)实例详解
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数