#include <iostream>
#include <queue>
const int maxsize=100;
using namespace std;
int a[maxsize];
int n,m;
int x,y;
int adjex[10];
queue<int>q;
int visited[100];
int edge[10][10];
int Bfs(int i,int j)
{
q.push(i);
visited[i]=1;
while(q.size()!=0)
{
int x=q.front();
if(adjex[x]==j)
{return 1;}
else{
q.pop();
for(int k=1;k<=n;k++)
{
if(edge[x][k]==1&&visited[k]==0)
{
q.push(k);
visited[k]=1;
}
}
}
}
}
int main()
{cin>>n;
for(int i=1;i<=n;i++)
cin>>adjex[i];
cin>>m;
for(int i=1;i<=m;i++)
{
cin>>x>>y;
edge[x][y]=1;
edge[y][x]=1;
}
int i,j;
cin>>i>>j;
cout<<Bfs(i,j);
}
图的遍历——判断两点之间是否相连
最新推荐文章于 2023-09-28 17:27:21 发布