BFS Traversel@myself

#include<stdio.h>
int a[100][100], q[100], visited[100], n, i, j, front = 1, rear = 1;

void bfs(int v) {
for(i = 1; i <= n; i++)
if(a[v][i] && visited[i]==0)
{rear++;
    q[rear] = i;
    visited[i] = 1;
}
if(front <= rear) {
front++;
bfs(q[front]);
}
}

int main() {
int v;
printf("\n Enter the number of vertices:");
scanf("%d", &n);

for(i=1; i <=n; i++) {
q[i] = 0;
visited[i] = 0;
}

printf("\n Enter graph data in matrix form:\n");
for(i=1; i<=n; i++) {
for(j=1;j<=n;j++) {
scanf("%d", &a[i][j]);
}
}

printf("\n Enter the starting vertex:");
scanf("%d", &v);
visited[v]=1;
q[1]=v;

bfs(v);
printf("\n The node which are reachable are:\n");

for(i=1; i <=n; i++) {
if(visited[i])
printf("%d\t", q[i]);
else {
printf("\n Bfs is not possible. Not all nodes are reachable");
break;
}
}
return 0;}

Comments

Popular Posts