用栈实现迷宫求解

博客介绍了严书上迷宫问题求解,提到栈可用于存放过程数值,实现有难度,还联想到图的深度遍历,给出了核心代码的转载链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

核心代码如下:

 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值