您的位置:首页 > 编程语言

BFS遍历图代码

2015-07-13 19:22 176 查看
#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
.push_back(m);
}
memset(vis,false,sizeof(vis));
memset(step,0,sizeof(step));
BFS(start);
//print_path();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: