当前位置:首页 > 数据结构课程设计报告-迷宫求解
{
if(x1 == x2 && y1 == y2) { break; }
if(m.shu[x1][y1+1] == 0 ) { y1=y1+1; push(x1,y1); m.shu[x1][y1] = -1; continue; }
if(m.shu[x1-1][y1]==0 ) { x1=x1-1; push(x1,y1); m.shu[x1][y1] = -1; continue; }
if(m.shu[x1][y1-1]==0 ) { y1=y1-1; push(x1,y1); m.shu[x1][y1]= -1; continue; }
if(m.shu[x1+1][y1]==0 ) { x1=x1+1; push(x1,y1); m.shu[x1][y1]= -1; continue; } pop();
if(p->next==NULL) break; x1=p->row; y1=p->col; }
if(x1 == x2 && y1 == y2) {
while(p->next != NULL)
{ printf(\ pop(); } } else printf(\
其中要寻求所有的通路,在这里则使用了一个while循环,这样可以找到所有的通路。
图解分析: 整体流程图:
开始输入数据是否操作判定开始
迷宫内部操作流程图:
开始数据否方向是数据入栈结束
四、调试分析
第一个问题,在刚开始的调试过程中,我们遇到了,无法判断走过的路程,从而出现了死循环,导致程序不能正常进行,但是经过我们的讨论,我们想出用标记的方法来解决,也就是让走过的路程全给标示了,这样就不会再走重复的路。
第二个问题,就是性用菜单来实现操作,那样程序的操作性就会更强,所以我们就要把所有的方法,给写成一个个的函数来调用,这样就遇到了参量传递的问题,但是经过我们的参考以及从书本上的实例,我们慢慢地更深的了解到了参量传递的应用,那么这个问题也就迎刃而解了。从此我们实现了菜单操作!
五、程序实现及测试
运行界面:
开始界面
共分享92篇相关文档