首页 > 其他 > 详细

用栈实现迷宫求解

时间:2019-03-21 12:05:22      阅读:193      评论:0      收藏:0      [点我收藏+]

严书上迷宫问题求解,讲了栈的用途,可以存放过程数值。自己实现很有难度(好像图的深度遍历也行,有什么联系呢?)。

核心代码如下:

 1 Status MazePath(PosType start, PosType end) 
 2 { 
 3   
 4   PosType curpos=start; 
 5   SqStack S; 
 6   SElemType e; 
 7   InitStack(S); 
 8   do
 9   { if(Pass(curpos)) 
10     { FootPrint(curpos); 
11       e.ord=curstep; 
12       e.seat=curpos; 
13       e.di=0; 
14       Push(S, e); 
15       curstep++; 
16       if(curpos.x==end.x && curpos.y==end.y) 
17         return TRUE;
18       NextPos(curpos, e.di); 
19     }
20     else 
21     { if(!StackEmpty(S)) 
22       { Pop(S, e); 
23         curstep--; 
24         while(e.di==3 && !StackEmpty(S)) 
25         { MarkPrint(e.seat); 
26           Pop(S, e); 
27           curstep--; 
28         }
29         if(e.di<3) 
30         { e.di++; 
31           Push(S, e); 
32           curstep++; 
33           curpos=e.seat; 
34           NextPos(curpos,e.di);
35         }
36       }
37     }
38   }while(!StackEmpty(S));
39   return FALSE;
40 }

技术分享图片

技术分享图片

用栈实现迷宫求解

原文:https://www.cnblogs.com/qiannong/p/10570180.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!