Untitled
unknown
plain_text
6 months ago
1.4 kB
3
Indexable
#include<stdio.h> int q[20], front=-1,rear=-1,a[20][20], vis[20]; int delete(); void add(int item); void bfs(int s,int n); void main() { int n,e,i,s,j,u,v; printf("Enter the number of vertices in the graph: "); scanf("%d", &n); printf("Enter the number of edges in the graph: "); scanf("%d", &e); printf("Enter the edges (u, v):\n"); for (i = 1; i<=e; i++) { scanf("%d %d", &u, &v); a[u][v] = 1; } printf("THE ADJACENCY MATRIX IS\n"); for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { printf("%d",a[i][j]); } printf("\n"); } for(i=1;i<=n;i++) vis[i]=0; printf("ENTER THE SOURCE VERTEX :"); scanf("%d",&s); bfs(s,n); } void bfs(int s,int n) { int p,i; add(s); vis[s]=1; p=delete(); if(p!=0) printf("%d",p); while(p!=0) { for(i=1;i<=n;i++) if((a[p][i]!=0)&&(vis[i]==0)) { add(i); vis[i]=1; } p=delete(); if(p!=0) printf("%d ",p); } for(i=1;i<=n;i++) if(vis[i]==0) bfs(i,n); } void add(int item) { if(rear==19) printf("QUEUE FULL"); else { if(rear==-1) { q[++rear]=item; front++; } else q[++rear]=item; } } int delete() { int k; if((front>rear)||(front==-1)) return(0); else { k=q[front++]; return(k); } }
Editor is loading...
Leave a Comment