#include #define MAX_VERTICES 100 int adjMatrix[MAX_VERTICES][MAX_VERTICES]; void initializeGraph(int v) { int i, j; for (i = 0; i < v; i++) { for (j = 0; j < v; j++) adjMatrix[i][j] = 0; } } void addEdge(int start, int end, int isDir) { adjMatrix[start][end] = 1; if (!isDir) adjMatrix[end][start] = 1; } void display(int v) { int i, j; printf("Adjacency Matrix:\n"); for (i = 0; i < v; i++) { for (j = 0; j < v; j++) printf("%d ", adjMatrix[i][j]); printf("\n"); } } int main() { int v, e, i, start, end, isDir; printf("Enter the number of vertices: "); scanf("%d", &v); initializeGraph(v); printf("Is the graph directed? (1 for yes, 0 for no): "); scanf("%d", &isDir); printf("Enter the number of edges: "); scanf("%d", &e); printf("Enter the edges (start and end vertex) separated by space:\n"); for (i = 0; i < e; i++) { scanf("%d %d", &start, &end); addEdge(start, end, isDir); } display(v); return 0; }