Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- int graph[200][200];
- int que[200];
- int top=-1;
- int ver, edge;
- int visited[20];
- int i,j,f=0;
- void push(int x)
- {
- que[++top]=x;
- }
- int pop()
- {
- int temp = que[0];
- for(int i=0;i<top;i++)
- que[i]=que[i+1];
- top--;
- return temp;
- }
- int queSize()
- {
- return top+1;
- }
- bool isEmpty()
- {
- if(top<0)
- return true;
- return false;
- }
- void inputGraph()
- {
- printf("Enter no of Node: ");
- scanf("%d",&ver);
- printf("Enter no of Edge: ");
- scanf("%d", &edge);
- int so, des, we;
- for( i=1;i<=edge;i++)
- {
- scanf("%d %d %d",&so, &des, &we);
- graph[so][des]=we;
- graph[des][so]=we;
- }
- }
- void printAM()
- {
- for(i=1;i<=ver;i++)
- {
- for(j=1;j<=ver;j++)
- {
- printf(" %d ",graph[i][j]);
- }
- printf("\n");
- }
- }
- void bfs(int source) {
- int i,temp;
- push(source);
- visited[source]=1;
- while(!isEmpty())
- {
- temp = pop();
- printf("%d ",temp );
- for(i=1;i<=ver;++i)
- {
- if(graph[temp][i]==1 && visited[i]==0 )
- {
- push(i);
- visited[i]=1;
- }
- }
- }
- }
- int main()
- {
- inputGraph();
- printAM();
- bfs(1);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement