BFS
#include <stdio.h>
int queue[100];
int front = 0, back = 0;
void push(int var) {
queue[back++] = var;
}
void pop() {
front++;
}
int main() {
int graph[10][10], visited[10] = {0};
int n, v, i, j;
printf("Enter the number of vertices: ");
scanf("%d", &n);
printf("Enter graph data in matrix form:\n");
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
scanf("%d", &graph[i][j]);
printf("Enter the starting vertex: ");
scanf("%d", &v);
if (v < 1 || v > n)
{
printf("Invalid starting vertex.\n");
return 1;
}
visited[v - 1] = 1;
push(v);
printf("BFS traversal: ");
while (front != back)
{
int current = queue[front];
printf("%d ", current);
pop();
for (i = 0; i < n; i++)
{
if (graph[current - 1][i] == 1 && visited[i] == 0)
{
visited[i] = 1;
push(i + 1);
}
}
}
printf("\n");
return 0;
}
int queue[100];
int front = 0, back = 0;
void push(int var) {
queue[back++] = var;
}
void pop() {
front++;
}
int main() {
int graph[10][10], visited[10] = {0};
int n, v, i, j;
printf("Enter the number of vertices: ");
scanf("%d", &n);
printf("Enter graph data in matrix form:\n");
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
scanf("%d", &graph[i][j]);
printf("Enter the starting vertex: ");
scanf("%d", &v);
if (v < 1 || v > n)
{
printf("Invalid starting vertex.\n");
return 1;
}
visited[v - 1] = 1;
push(v);
printf("BFS traversal: ");
while (front != back)
{
int current = queue[front];
printf("%d ", current);
pop();
for (i = 0; i < n; i++)
{
if (graph[current - 1][i] == 1 && visited[i] == 0)
{
visited[i] = 1;
push(i + 1);
}
}
}
printf("\n");
return 0;
}
Comments
Post a Comment