Java Program to Describe the Representation of Graph using Incidence Matrix

This Java program, represents a given graph in the incident matrix form.

Here is the source code of the Java program to represent the graph in incident matrix. The Java program is successfully compiled and run on a Linux system. The program output is also shown below.

import java.util.InputMismatchException;
import java.util.Scanner;
 
public class GraphIncidenceMatrix
{
    private final int MAX_ROWS ;
    private final int MAX_COLUMS;	
    private int Incidence_Matrix[][];
 
    public GraphIncidenceMatrix(int number_of_vertices, int number_of_edges)
    {
        MAX_COLUMS = number_of_edges;
        MAX_ROWS = number_of_vertices;
        Incidence_Matrix = new int[MAX_ROWS + 1][MAX_COLUMS + 1];
    }
 
    public void setVertices(int from_vertex, int to_vertex, int edge, int edge_num)
    { 
        try
        {
            Incidence_Matrix[from_vertex][edge_num] = edge;
            Incidence_Matrix[to_vertex][edge_num] = edge;
        }catch(ArrayIndexOutOfBoundsException indexBounce)
        {
            System.out.println("the vertex entered is not present");
        }
    }
 
    public int  getVertices(int edge_num, int vertex)
    {
        try
        {
            return Incidence_Matrix[vertex][edge_num];
        }catch(ArrayIndexOutOfBoundsException indexBounce)
        {
            System.out.println("the vertex entered is not present");
        }
        return -1;
    }
 
    public static void main(String...arg)
    {
        int number_of_vertices;
        int number_of_edges;
        int edge_count = 1;
        int edge_number ;
        int source;
        int destination;
 
        GraphIncidenceMatrix incedenceMatrix = null;	
        Scanner scan = new Scanner(System.in);
 
        try
        {
            System.out.println("Enter The Number Of Vertices and Edges \n");
            number_of_vertices = scan.nextInt();
            number_of_edges = scan.nextInt();
            incedenceMatrix = new GraphIncidenceMatrix(number_of_vertices, number_of_edges);
 
            System.out.println("Enter the Egdes Format :<edge-number> <source index> <destination index> \n");
            while (edge_count <= number_of_edges)
            {
                edge_number = scan.nextInt();
                source = scan.nextInt();
                destination = scan.nextInt();
                edge_count++;
                incedenceMatrix.setVertices(source, destination, 1, edge_number);
            }
 
            System.out.println("The Incendence Matrix for the given graph is ");
            for (int i = 1; i <= number_of_edges; i++)
            {
                System.out.print("\t" + i);
            }
            System.out.println();
            for (int i = 1; i <= number_of_vertices; i++)
            {
                System.out.print(i + "\t");
                for (int j = 1; j<= number_of_edges; j++)
                {
                    System.out.print(incedenceMatrix.getVertices(j, i) + "\t");
	        }
                System.out.println();
            }
        }catch(InputMismatchException inputMismatch)
        {
            System.out.println("the vertex entered is not present");
        }
        scan.close();
    }
}
$javac GraphIncidenceMatrix.java
$java GrapIncidenceMatrix
Enter The Number Of Vertices and Edges
4 5
Enter the Egdes Format :<edge-number> <source index> <destination index> 
 
1 1 2
2 2 3 
3 3 4
4 4 1
5 1 3
The Incendence Matrix for the given graph is 
	1	2	3	4	5
1	1	0	0	1	1	
2	1	1	0	0	0	
3	0	1	1	0	1	
4	0	0	1	1	0

Related posts:

Java Program to Perform Postorder Non-Recursive Traversal of a Given Binary Tree
Concurrent Test Execution in Spring 5
Java Program to Apply DFS to Perform the Topological Sorting of a Directed Acyclic Graph
Java Program to Implement JobStateReasons API
Java Program to Find Inverse of a Matrix
Java Program to Implement Meldable Heap
Spring Security and OpenID Connect
Count Occurrences of a Char in a String
New Features in Java 14
Instance Profile Credentials using Spring Cloud
So sánh HashMap và HashSet trong Java
Sending Emails with Java
Java Program to Apply Above-Below-on Test to Find the Position of a Point with respect to a Line
Loại bỏ các phần tử trùng trong một ArrayList như thế nào trong Java 8?
HttpClient with SSL
Spring Cloud – Bootstrapping
Command-Line Arguments in Java
Java Program to Give an Implementation of the Traditional Chinese Postman Problem
Introduction to Eclipse Collections
ClassNotFoundException vs NoClassDefFoundError
Java Program to Implement Leftist Heap
Java Program to Generate a Random Subset by Coin Flipping
Java Program to Implement Gauss Jordan Elimination
Java – Reader to String
Java 8 Stream findFirst() vs. findAny()
Java Program to Implement Sieve Of Atkin
Java Program to Check Whether an Input Binary Tree is the Sub Tree of the Binary Tree
Spring Boot - Cloud Configuration Server
Exception Handling in Java
Java Program to Implement Queue using Linked List
Java Program to Check Whether Graph is DAG
Java Program to Implement a Binary Search Algorithm for a Specific Search Sequence