BFS遍历图代码

来源:互联网 发布:linux 报文发送工具 编辑:程序博客网 时间:2024/06/06 15:30
#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;} 

0 0
原创粉丝点击