Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<stdio.h>
- #include<vector>
- #include<queue>
- using namespace std;
- vector<int>nodes[100];
- int clr[100],cost[100];
- queue<int>Q;
- void bfs(int src)
- {
- Q.push(src);
- clr[src]=1;
- cost[src]=0;
- while(!Q.empty())
- {
- int u=Q.front();
- Q.pop();
- printf("%d(%d) ",u,cost[u]);
- for(int i=0;i<nodes[u].size();i++)
- {
- if(clr[nodes[u][i]]==0)
- {
- int v=nodes[u][i];
- Q.push(v);
- cost[v]=cost[u]+1;
- clr[v]=1;
- }
- }
- }
- }
- int main()
- {
- int i,j,n,edge,source=2,u,v;
- scanf("%d %d",&n,&edge);
- for(i=0;i<edge;i++)
- {
- scanf("%d %d",&u,&v);
- nodes[u].push_back(v);
- nodes[v].push_back(u);
- }
- for(i=1;i<=n;i++)
- {
- printf("%d-->",i);
- for(j=0;j<nodes[i].size();j++)
- {
- printf("%d ",nodes[i][j]);
- }
- printf("\n");
- }
- // vector<int>::iterator it;
- // for(it=nodes.begin();it!=nodes.end();it++)cout<<*it<<endl;
- bfs(source);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment