数据结构 迷宫问题算法

代码非递归vc下运行C语言... 代码
非递归
vc下运行
C语言
展开
 我来答
huanghun00135
2010-06-01 · TA获得超过199个赞
知道小有建树答主
回答量:179
采纳率:0%
帮助的人:168万
展开全部
//迷宫求解(自定义一个2维矩阵作为地图)
void Labyrinth()
{
printf("自定义迷宫矩阵:\n");
int a[10][10];
int i,j;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
scanf("%d",&a[i][j]);
printf("\n");

coordinate *Laby = new coordinate[100];
int n=1;
int x,y;
Laby[1].x=x=1;
Laby[1].y=y=6;
Laby[1].step=1;
a[1][6]=2;
SqStack S;
InitStack(S);
Push(S,0);
Push(S,1);
i=1;
while(GetTop(S))
{
if(a[x][y]==100)
{
printf("找到终点了!!!\n");
break;
}
i++;
if(n==1)
a[x][y]=i;
if(a[x][y-1]==1||a[x-1][y]==100)
{
Push(S,i);
Laby[i].x=x;
Laby[i].y=y=y-1;
Laby[i].step=i;
n=1;
continue;

}
else if(a[x-1][y]==1||a[x-1][y]==100)
{
Push(S,i);
Laby[i].x=x=x-1;
Laby[i].y=y;
Laby[i].step=i;
n=1;
continue;
}
else if(a[x][y+1]==1||a[x][y+1]==100)
{
Push(S,i);
Laby[i].x=x;
Laby[i].y=y=y+1;
Laby[i].step=i;
n=1;
continue;
}
else if(a[x+1][y]==1||a[x+1][y]==100)
{
Push(S,i);
Laby[i].x=x=x+1;
Laby[i].y=y;
Laby[i].step=i;
n=1;
continue;
}
else
{
Pop(S,i);
x=Laby[i].x;
y=Laby[i].y;
a[x][y]=-1;
n=0;
}
}
if(!GetTop(S))
printf("没有找到出路!\n");

for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
printf("%d ",a[i][j]);
printf("\n");
}
}

我没有给出栈的代码,你自己应该有吧!
具体迷宫算法 就是如此 仅供参考
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式