#include <stdio.h>
#define MAX 100
int graph[MAX][MAX];
int visited[MAX];
int queue[MAX];
int n;
void BFS(int start)
{
int front = 0, rear = 0;
visited[start] = 1;
queue[rear++] = start;
while (front < rear)
{
int vertex = queue[front++];
printf("%d ", vertex);
for (int i = 0; i < n; i++)
{
if (graph[vertex][i] == 1 && !visited[i])
{
visited[i] = 1;
queue[rear++] = i;
}
}
}
}
int main()
{
int edges, u, v, start;
printf("Enter number of vertices: ");
scanf("%d", &n);
printf("Enter number of edges: ");
scanf("%d", &edges);
printf("Enter edges (u v):\n");
for (int i = 0; i < edges; i++)
{
scanf("%d %d", &u, &v);
graph[u][v] = 1;
graph[v][u] = 1;
}
printf("Enter starting vertex: ");
scanf("%d", &start);
BFS(start);
return 0;
}2 views