数据结构课程设计
迷宫求解
学院:湖北工业大学计算机学院
教师:沈华老师
班级:12网络工程1班
学号:1210322118
姓名:饶进阳
时间:2013年12月22日
目 录
问题描述 ......................................................... 2
思路解析 .........................................................
程序流程 .........................................................
核心代码 .........................................................
源程序代码 ........................................................
程序运行实例 .....................................................
课设总结 .........................................................
3 4 5 6 12 14
1
迷宫求解
问题描述:
可以输入一个任意大小的迷宫数据,用非递归的方法求出一条走出迷宫的路径,并将路径输出; 要求:
在上交资料中请写明:存储结构、基本算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;
比如这是一个迷宫
电脑找出的出路
2
思 路
设定当前位置的初值为入口位置: do{
若当前位置可通, 则{
将当前位置插入栈顶;} 若该位置是出口位置,则结束;
否则切换当前位置的东邻块为新的当前位置; 否则{
若栈不空且栈顶位置还有其他方向未被探索, 则设定新的当前位置为沿顺时针方向旋转找到的栈顶位置的下一相邻块;} 若{
栈不空但栈顶位置的四周均不可通, 则删去栈顶位置;} 若{
栈不空,则重新测试新的栈顶位置, 直至找到一个可通的相邻块或出栈至栈空;} }while(栈不空)
{栈空说明没有路径存在}
PS:类似动态求解方法 3
程序流程
第一次用visio做程序框图,所以只把程序的大概流程画出来了。
4