• 大小: 2KB
    文件类型: .cpp
    金币: 2
    下载: 1 次
    发布日期: 2021-06-19
  • 语言: C/C++
  • 标签:

资源简介

对于一个给定的迷宫,用0、1分别表示迷宫中的通路和障碍。再分别给定你,入口和出口的坐标,求出一条从入口到出口的通路,或得不到通路。

资源截图

代码片段和文件信息

#include
struct elem{
int  ord;   //通道块在路径上的“序号“ 
int  xy;   //此通道块 在迷宫中的坐标位置 
int  di;   //从此通道块走向下一通道的方向 
};            //栈的元素类型 

int main()
{
struct elem s[10000]e;   //等价于建立一个站栈 //用来存储迷宫的路径 在这里用数组来实现栈的操作
int kt;                 // k 用来记录栈的尾指针指向的位置,t用来记录走出迷宫的路径当前长度
int curpos[2]cursteptu[100][100]; //curpos[0]和curpos[1]用分别来存储当前的x值和y值。整个迷宫是用二维数组tu[][]来存放的
int nmenemsnsmij;
while(scanf(“%d%d“&n&m)n)  //迷宫的大小,即n行,m列 
{                         
for(i=0;i for(j=0;j scanf(“%d“&tu[i][j]); //输入迷宫,1为不能通过,0为可以通过 
     scanf(“%d%d“&sn&sm);  //输入起始的位置(sn,sm) 
     scanf(“%d%d“&en&em);  //输入终点(enem) 
k=0;   //初始化栈s 初始化记录迷宫的序列 
curpos[0]=sn;curpos[1]=sm;  //设定当前位置为“入口位置“ 
curstep=1; //探索第一步 
do{
if(tu[curpos[0]][curpos[1]]==0)  //当前位置是可通的即是未曾走过的通道块 
{

tu[curpos[0]][curpos[1]]=1;  //留下足迹,并没有把这一通道块标记为无法通过
e.ord=curstep;

评论

共有 条评论

相关资源