#include<iostream>
#include<vector>
#include<queue>
#include<cstring>
#include<cstdio>
using namespace std;
const int maxn = 1005;
vector<int> vec[maxn];
queue<int> que;
bool vis[maxn];
int step[maxn];
void BFS(int s)
{
int i;
int ele,ele1;
que.push(s);
vis[s] = true;
while(!que.empty())
{
ele = que.front();
que.pop();
int len = vec[ele].size();
//cout<<len<<endl;
for(i=0;i<len;i++)
{
ele1 = vec[ele][i];
if(vis[ele1] == false)
{
que.push(ele1);
vis[ele1] = true;
step[ele1] = step[ele] + 1;
//cout<<step[ele1]<<endl;
cout<<"ele1:"<<ele1<<" "<<"step:"<<step[ele1]<<endl;
}
}
}
}
int main()
{
int m,n;
int start;
//freopen("1.txt","r",stdin);
cin>>start;
while(cin>>m>>n && m != 0 && n != 0)
{
vec[m].push_back(n);
vec[n].push_back(m);
}
memset(vis,false,sizeof(vis));
memset(step,0,sizeof(step));
BFS(start);
//print_path();
return 0;
}
BFS遍历图代码
最新推荐文章于 2022-09-01 11:15:00 发布