无向图,从一个地方到达另一个地方,给出了航班路线问怎么走最进
<span style="font-size:14px;">#include <iostream>
using namespace std;
struct node
{
int x;
int s;
};
struct node que[10001];
int map[1000][1000];
int visit[1000];
int main()
{
int i,j,n,m,k,g;
int a,b;
int head,tail,cur;
int flag=0;
cin>>n>>m>>k>>g;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if(i==j)
map[i][j]=1;
else
map[i][j]=9999999;
}
}
for(i=1;i<=m;i++)
{
cin>>a>>b;
map[a][b]=1;
map[b][a]=1;
}
visit[1]=1;
que[tail].x=1;
que[tail].s=0;
tail++;
while(head<tail)
{
for(i=1;i<=n;i++)
{
cur=que[head].x;
if(map[cur][i]!=9999999 && visit[i]==0)
{
que[tail].x=i;
que[tail].s=que[head].s+1;
tail++;
visit[i]=1;
}
if(que[tail].x==g)//确定到达目的地就返回
{
flag=1;
break;
}
}
if(flag==1)
break;
head++;
}
cout<<que[tail-1].s;
}
//5 7 1 5
//1 2
//1 3
//2 3
//2 4
//3 4
//3 5
//4 5</span>