Java Program to Implement Adjacency Matrix

Java program to describe the implement Adjacency Matrix. The Adjacency Matrix is used to represent a graph.The adjacency matrix of a finite graph G on n vertices is the n × n matrix where the non-diagonal entry aij is the number of edges from vertex i to vertex j, and the diagonal entry aii, depending on the convention, is either once or twice the number of edges (loops) from vertex i to itself.

Here is source code of the Java program to implement the Adjacency 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 AdjacencyMatrix
{
    private final int MAX_NO_OF_VERTICES;
    private int adjacency_matrix[][];
 
    public AdjacencyMatrix(int number_of_vertices)
    {
        MAX_NO_OF_VERTICES = number_of_vertices;
        adjacency_matrix = new int[MAX_NO_OF_VERTICES + 1][MAX_NO_OF_VERTICES + 1];
    }
 
    public void setEdge(int from_vertex, int to_vertex, int edge) 
    {
        try 
        {
            adjacency_matrix[from_vertex][to_vertex] = edge;
        } catch (ArrayIndexOutOfBoundsException indexBounce)
        {
            System.out.println("the vertex entered is not present");
        }
    }
 
    public int getEdge(int from_vertex, int to_vertex)
    {
        try 
        {
            return adjacency_matrix[from_vertex][to_vertex];
        } catch (ArrayIndexOutOfBoundsException indexBounce)
        {
            System.out.println("the vertex entered is not present")
        }
        return -1;
    }
 
    public static void main(String... arg) 
    {
        int number_of_vertices, count = 1;
        int source = 0, destination = 0;
        Scanner scan = new Scanner(System.in);
        AdjacencyMatrix adjacencyMatrix;
 
        try 
        {   
            System.out.println("Enter the Number of Vertices");
            number_of_vertices = scan.nextInt();
 
            System.out.println("Enter the Number of Edges"); 
            int number_of_edges = scan.nextInt();
 
            adjacencyMatrix  = new AdjacencyMatrix(number_of_vertices);
            System.out.println("Enter The Graph Egdes :<source> <destination>");
            while (count <= number_of_edges)
            {
                source = scan.nextInt();
                destination = scan.nextInt();
                adjacencyMatrix.setEdge(source, destination, 1);
                count++;
            }
            System.out.println("The adjacency matrix for given graph is");
            for (int i = 1; i <= number_of_vertices; i++)
                System.out.print(i);
 
            System.out.println();
            for (int i = 1; i <= number_of_vertices; i++) 
            {
                System.out.print(i);
                for (int j = 1; j <= number_of_vertices; j++)
                {
                    System.out.print(adjacencyMatrix.getEdge(i, j));
                } 
                System.out.println();
            }
        } catch (InputMismatchException inputMisMatch) 
        {
            System.out.println("Error in Input Format.<source index> <destination index>");
        }
        scan.close();
    }
}
$javac AdjacencyMatrix.java
$java AdjacencyMatrix
 
Enter the Number of Vertices and Edges
4 5
Enter The Graph Egdes Format : <source index> <destination index> 
 
1 2 
2 3
3 4
4 1
1 3
 
The adjacency matrix for given graph is 
 
	1	2	3	4
1	0	1	1	0	
2	0	0	1	0	
3	0	0	0	1	
4	1	0	0	0

Related posts:

Java 8 Stream findFirst() vs. findAny()
New Features in Java 14
Custom Exception trong Java
Java Program to Implement Knapsack Algorithm
Java Program to implement Associate Array
OAuth2 for a Spring REST API – Handle the Refresh Token in Angular
Spring REST API + OAuth2 + Angular
Java Program to Find Transpose of a Graph Matrix
Java Program to Compute Discrete Fourier Transform Using the Fast Fourier Transform Approach
Java Program to Create a Random Graph Using Random Edge Generation
Java Program to Implement WeakHashMap API
Java Program to Repeatedly Search the Same Text (such as Bible by building a Data Structure)
Java Program to Implement RenderingHints API
Hướng dẫn sử dụng Java String, StringBuffer và StringBuilder
Java Program to Implement DelayQueue API
Hướng dẫn sử dụng lớp Console trong java
Java Program to Implement Suffix Tree
Serverless Functions with Spring Cloud Function
Implementing a Runnable vs Extending a Thread
Câu lệnh điều khiển vòng lặp trong Java (break, continue)
Java Timer
Java Program to Find the Number of Ways to Write a Number as the Sum of Numbers Smaller than Itself
Java Program for Topological Sorting in Graphs
Java Copy Constructor
Spring Boot Actuator
Pagination and Sorting using Spring Data JPA
Java Program to Implement LinkedBlockingDeque API
Serialization và Deserialization trong java
Database Migrations with Flyway
Hướng dẫn Java Design Pattern – Chain of Responsibility
Java Concurrency Interview Questions and Answers
Check If Two Lists are Equal in Java