poj1979广搜c语言

本文介绍了一个使用队列实现的迷宫寻路算法。通过遍历迷宫地图,找到从起点到边界的所有可能路径。文章详细展示了如何利用队列进行节点的存储与访问,并在每次迭代中检查当前节点的相邻节点是否可以被访问。

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

坑了,写程序的时候倒数第二个花括号把return 0;给我括起来了,程序一次就结束了,吃了饭回来才顿悟了
#include<stdio.h>
struct point
{
	int hang,lie;
	int predecessor;
}queue[402],p,visit_point;
char brr[30][30],c;
int head=0,tail=0,n,m;
void enqueue(struct point p)
{
    queue[tail++] = p;
}
struct point dequeue(void)
{
    return queue[head++];
}
void visit(int hang, int lie)
{
    visit_point.hang=hang;visit_point.lie=lie;visit_point.predecessor=head-1;
    brr[hang][lie] = '#';
    enqueue(visit_point);
}
int main()
{
	int i,j;
	while(1)
	{
	    scanf("%d%d",&n,&m);
	    if(m==0&&n==0)
            break;
		scanf("%c",&c);
		for(i=0;i<m;i++)
			for(j=0;j<=n;j++)
			{
				scanf("%c",&brr[i][j]);
				if(brr[i][j]=='@')
				{
					p.hang=i;p.lie=j;p.predecessor=1;
				}
			}
        queue[0]=p;tail++;
		while(tail!=head)
        {
            p = dequeue();
            if (p.lie+1 < n && brr[p.hang][p.lie+1] == '.')
            visit(p.hang, p.lie+1);
            if (p.hang+1 < m  && brr[p.hang+1][p.lie] == '.')
            visit(p.hang+1, p.lie);
            if (p.lie-1 >= 0  && brr[p.hang][p.lie-1] == '.')
            visit(p.hang, p.lie-1);
            if (p.hang-1 >= 0&& brr[p.hang-1][p.lie] == '.')
            visit(p.hang-1, p.lie);
        }
        printf("%d\n",tail);
        head=0;tail=0;
	}	
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值