BFS implementation using queue
#include<stdio.h>
int arr[10][10],visited[10],n;
void bfs(int);
int main(){
int i,j;
printf("Enter no of vertices :\n");
scanf("%d",&n);
printf("Enter adjacency matrix :\n");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&arr[i][j]);
for(i=0;i<n;i++)
visited[i]=0;
bfs(0);
}
void bfs(int start){
int queue[n],front=-1,rear=-1,i;
queue[++rear]=start;
visited[start]=1;
while(front!=rear){
start=queue[++front];
printf("%c\n",start+65);
for(i=0;i<n;i++){
if((arr[start][i]==1)&&(visited[i]==0)){
queue[++rear]=i;
visited[i]=1;
}
}
}
}
int arr[10][10],visited[10],n;
void bfs(int);
int main(){
int i,j;
printf("Enter no of vertices :\n");
scanf("%d",&n);
printf("Enter adjacency matrix :\n");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&arr[i][j]);
for(i=0;i<n;i++)
visited[i]=0;
bfs(0);
}
void bfs(int start){
int queue[n],front=-1,rear=-1,i;
queue[++rear]=start;
visited[start]=1;
while(front!=rear){
start=queue[++front];
printf("%c\n",start+65);
for(i=0;i<n;i++){
if((arr[start][i]==1)&&(visited[i]==0)){
queue[++rear]=i;
visited[i]=1;
}
}
}
}
Comments
Post a Comment