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:

Ways to Iterate Over a List in Java
Java Program to Represent Graph Using 2D Arrays
Collect a Java Stream to an Immutable Collection
Custom Thread Pools In Java 8 Parallel Streams
Hướng dẫn Java Design Pattern – Service Locator
Java Program to Implement Traveling Salesman Problem using Nearest neighbour Algorithm
Java Program to Implement Min Hash
Transaction Propagation and Isolation in Spring @Transactional
Adding Shutdown Hooks for JVM Applications
So sánh ArrayList và Vector trong Java
Introduction to the Functional Web Framework in Spring 5
Working With Maps Using Streams
Java Program to Evaluate an Expression using Stacks
Java Program to Implement ArrayList API
ExecutorService – Waiting for Threads to Finish
A Guide to EnumMap
Java Program to Find the Nearest Neighbor Using K-D Tree Search
Java Program to Implement Hash Tables with Linear Probing
Java Program to Find the Connected Components of an UnDirected Graph
Servlet 3 Async Support with Spring MVC and Spring Security
Java Program to Show the Duality Transformation of Line and Point
Truyền giá trị và tham chiếu trong java
Java Program to Implement Binomial Heap
Create a Custom Auto-Configuration with Spring Boot
How to Store Duplicate Keys in a Map in Java?
Spring Security – security none, filters none, access permitAll
Get the workstation name or IP
Request a Delivery / Read Receipt in Javamail
Introduction to Spring Cloud Stream
Java Program to Perform Optimal Paranthesization Using Dynamic Programming
A Comparison Between Spring and Spring Boot
Error Handling for REST with Spring