Java Program to Represent Graph Using Incidence Matrix

This is a java program to represent graph as a incidence list. The incidence matrix of G is a n × m matrix (b_{ij}), where n and m are the numbers of vertices and edges respectively, such that b_{ij} = 1 if the vertex v_i and edge x_j are incident and 0 otherwise.

Here is the source code of the Java Program to Represent Graph Using Incidence Matrix. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.

//This is a java program to represent graph as a incidence matrix
import java.util.Scanner;
 
public class Represent_Graph_Incidence_Matrix 
{
    private final int rows;
    private final int cols;
    private int[][] incidence_matrix;
 
    public Represent_Graph_Incidence_Matrix(int v, int e) 
    {
        rows = v;
        cols = e;
        incidence_matrix = new int[rows + 1][cols + 1];
    }
 
    public void makeEdge(int to, int from, int edge, int edge_number) 
    {
        try 
        {
            incidence_matrix[to][edge_number] = edge;
            incidence_matrix[from][edge_number] = edge;
        }
        catch (ArrayIndexOutOfBoundsException index) 
        {
            System.out.println("The vertices does not exists");
        }
    }
 
    public int getEdge(int edge_number, int v) 
    {
        try 
        {
            return incidence_matrix[edge_number][v];
        }
        catch (ArrayIndexOutOfBoundsException index) 
        {
            System.out.println("The vertices does not exists");
        }
        return -1;
    }
 
    public static void main(String args[]) 
    {
        int v, e, count = 1, to = 0, from = 0, edge_number;
        Scanner sc = new Scanner(System.in);
        Represent_Graph_Incidence_Matrix graph;
        try 
        {
            System.out.println("Enter the number of vertices: ");
            v = sc.nextInt();
            System.out.println("Enter the number of edges: ");
            e = sc.nextInt();
 
            graph = new Represent_Graph_Incidence_Matrix(v, e);
 
            System.out.println("Enter the edges: <edge_number> <to> <from>");
            while (count <= e) 
            {
                edge_number = sc.nextInt();
                to = sc.nextInt();
                from = sc.nextInt();
 
                graph.makeEdge(to, from, 1, edge_number);
                count++;
            }
 
            System.out.println("The incidence matrix for the given graph is: ");
            System.out.print("  ");
            for (int i = 1; i <= v; i++)
                System.out.print(i + " ");
            System.out.println();
 
            for (int i = 1; i <= v; i++) 
            {
                System.out.print(i + " ");
                for (int j = 1; j <= v; j++) 
                    System.out.print(graph.getEdge(i, j) + " ");
                System.out.println();
            }
 
        }
        catch (Exception E) 
        {
            System.out.println("Somthing went wrong");
        }
 
        sc.close();
    }
 
}

Output:

$ javac Represent_Graph_Incidence_Matrix.java
$ java Represent_Graph_Incidence_Matrix
 
Enter the number of vertices: 
4 
Enter the number of edges: 
5
Enter the edges: <edge_number> <to> <from>
1 1 2
2 2 3
3 3 4 
4 4 1
1 1 3
The incidence matrix for the given graph is: 
  1 2 3 4 
1 1 0 0 1 
2 1 1 0 0 
3 1 1 1 0 
4 0 0 1 1

Related posts:

Java Program to Solve a Matching Problem for a Given Specific Case
JUnit5 @RunWith
Quick Guide on Loading Initial Data with Spring Boot
Java Program to Implement Heap’s Algorithm for Permutation of N Numbers
Java Program to Implement the MD5 Algorithm
Receive email by java client
Initialize a HashMap in Java
Calling Stored Procedures from Spring Data JPA Repositories
Java Program to Implement the Hungarian Algorithm for Bipartite Matching
Hướng dẫn Java Design Pattern – Factory Method
Convert a Map to an Array, List or Set in Java
Comparing Strings in Java
Java Program to Implement Bresenham Line Algorithm
Quick Guide to Spring MVC with Velocity
Từ khóa throw và throws trong Java
Java Program to Implement Levenshtein Distance Computing Algorithm
Guide to Guava Multimap
Jackson – JsonMappingException (No serializer found for class)
Java Program to Solve the Fractional Knapsack Problem
Java Program to Implement Best-First Search
Java Program to Implement Sorted Array
Java Program to Generate All Possible Combinations of a Given List of Numbers
String Processing with Apache Commons Lang 3
Java Program to Check if a Matrix is Invertible
Java Program to Generate Date Between Given Range
Java Program to Find the Connected Components of an UnDirected Graph
Java Program to Implement Quick Sort with Given Complexity Constraint
Simple Single Sign-On with Spring Security OAuth2
Java Program to Implement Interval Tree
Java Program to find the peak element of an array using Binary Search approach
Java Program to Implement Gabow Algorithm
A Quick Guide to Using Keycloak with Spring Boot