Ds 8
Ds 8
h>
#define MAX 20
void read_graph() {
char reply;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (i == j) {
adj_mat[i][j] = 0;
} else {
printf("Vertices %d & %d are adjacent? (Y/N): ", i, j);
getchar(); // Consume newline character from previous input
scanf("%c", &reply);
adj_mat[i][j] = (reply == 'Y' || reply == 'y') ? 1 : 0;
}
}
}
}
void print_graph() {
printf("\nAdjacency Matrix:\n");
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
printf("%d ", adj_mat[i][j]);
}
printf("\n");
}
}
visited[start] = 1;
queue[rear++] = start;
printf("BFS: ");
while (front < rear) {
int v = queue[front++];
printf("%d ", v);
void dfs(int v) {
printf("%d ", v);
visited[v] = 1;
int main() {
printf("Enter the number of vertices: ");
scanf("%d", &n);
read_graph();
print_graph();
int start;
printf("Enter the starting vertex for BFS: ");
scanf("%d", &start);
bfs(start);
return 0;
}