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:

Hamcrest Collections Cookbook
Java Program to Repeatedly Search the Same Text (such as Bible by building a Data Structure)
Java Program to Implement WeakHashMap API
Java – Reader to InputStream
Spring Security – security none, filters none, access permitAll
Entity To DTO Conversion for a Spring REST API
String Operations with Java Streams
Convert String to int or Integer in Java
Hướng dẫn Java Design Pattern – Mediator
Java Program to Implement the String Search Algorithm for Short Text Sizes
Spring Boot - Cloud Configuration Client
Hướng dẫn sử dụng biểu thức chính quy (Regular Expression) trong Java
Java Web Services – Jersey JAX-RS – REST và sử dụng REST API testing tools với Postman
Introduction to Spring Data JDBC
Java Program to Implement SimpeBindings API
Getting Started with GraphQL and Spring Boot
Java Program to Implement Dijkstra’s Algorithm using Set
Get and Post Lists of Objects with RestTemplate
Java Program to Give an Implementation of the Traditional Chinese Postman Problem
Encode/Decode to/from Base64
Java Program to Check whether Undirected Graph is Connected using BFS
Auditing with JPA, Hibernate, and Spring Data JPA
Getting a File’s Mime Type in Java
Find the Registered Spring Security Filters
Java Program to Implement Self organizing List
Hướng dẫn Java Design Pattern – Transfer Object
Java Program to Implement Weight Balanced Tree
New Features in Java 15
Java Program to Use Above Below Primitive to Test Whether Two Lines Intersect
Java Program to Implement Gauss Jordan Elimination
Lập trình đa luồng với CompletableFuture trong Java 8
Java TreeMap vs HashMap