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:

How to Find an Element in a List with Java
Java Program to Implement Sorted Vector
Java Program to Find Transitive Closure of a Graph
Java Program to Implement Segment Tree
Tính đa hình (Polymorphism) trong Java
Removing all Nulls from a List in Java
Hướng dẫn Java Design Pattern – Decorator
Netflix Archaius with Various Database Configurations
A Guide to the ResourceBundle
Java Program to Implement Bubble Sort
Java Program to Perform the Shaker Sort
Java Program to Implement Sorting of Less than 100 Numbers in O(n) Complexity
Exploring the Spring Boot TestRestTemplate
Feign – Tạo ứng dụng Java RESTful Client
Recommended Package Structure of a Spring Boot Project
Finding the Differences Between Two Lists in Java
Extra Login Fields with Spring Security
A Guide to Iterator in Java
Spring Boot - Interceptor
Java Program to Generate All Possible Combinations of a Given List of Numbers
Spring Boot - Securing Web Applications
Tránh lỗi ConcurrentModificationException trong Java như thế nào?
OAuth 2.0 Resource Server With Spring Security 5
Java Program to Check if a Given Graph Contain Hamiltonian Cycle or Not
An Example of Load Balancing with Zuul and Eureka
Java Program to Perform Complex Number Multiplication
OAuth2 for a Spring REST API – Handle the Refresh Token in AngularJS
Hướng dẫn sử dụng Java Generics
Java Program to Implement Heap Sort Using Library Functions
Java Program to Perform the Unique Factorization of a Given Number
Concrete Class in Java
Spring MVC Custom Validation