Skip to content

Experiment 10:

Question:

  • Implementation of a Graph representation using Adjacency Matrix

Program:

c
#include <stdio.h>
#define V  5  // constant

void init(int arr[][V]) {
    for (int i = 0; i < V; i++)
        for (int j = 0; j < V; j++)
            arr[i][j] = 0;
}

void addEdge(int arr[][V], int src, int dest) {
    arr[src][dest] = 1;
}

void printAdjMatrix(int arr[][V]) {
    for (int i = 0; i < V; i++) {
        for (int j = 0; j < V; j++)
            printf("%d ", arr[i][j]);
        printf("\n");
    }
}

int main() {
    int adjMatrix[V][V];
    int x, y, n;

    init(adjMatrix);

    printf("Enter number of edges: ");
    scanf("%d", &n);

    for (int i = 1; i <= n; i++) {
        printf("Enter vertices of edge %d: ", i);
        scanf("%d%d", &x, &y);
        addEdge(adjMatrix, x, y);
        addEdge(adjMatrix, y, x); // for undirected graph
    }

    printf("\nAdjacency Matrix:\n");
    printAdjMatrix(adjMatrix);

    return 0;
}

Output: