Java program to describe the representation of graph using adjacency matrix.In mathematics and computer science, an adjacency matrix is a means of representing which vertices (or nodes) of a graph are adjacent to which other vertices. Another matrix representation for a graph is the incidence matrix.
Here is source code of the Java program to find the adjacency matrix of a given graph .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 GraphAdjacencyMatrix
{
private final int MAX_NO_OF_VERTICES;
private int adjacency_matrix[][];
public GraphAdjacencyMatrix(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);
GraphAdjacencyMatrix 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 GraphAdjacencyMatrix(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 GraphAdjacencyMatrix.java $java GraphAdjacencyMatrix 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:
Introduction to Netflix Archaius with Spring Cloud
Spring MVC Setup with Kotlin
Java 8 and Infinite Streams
Changing Annotation Parameters At Runtime
List Interface trong Java
Spring Boot - Code Structure
Adding a Newline Character to a String in Java
Java Program to Perform the Unique Factorization of a Given Number
Serialize Only Fields that meet a Custom Criteria with Jackson
Lập trình đa luồng với CompletableFuture trong Java 8
Java Program to Implement Sorting of Less than 100 Numbers in O(n) Complexity
Hướng dẫn Java Design Pattern – Object Pool
Java Program to Implement Selection Sort
Toán tử trong java
RestTemplate Post Request with JSON
String Processing with Apache Commons Lang 3
Java 8 Stream API Analogies in Kotlin
A Guide to Java SynchronousQueue
Java Program to Find the Peak Element of an Array O(n) time (Naive Method)
The DAO with Spring and Hibernate
Java Program to Implement Ternary Tree
Java Program to Implement VList
Guide to CopyOnWriteArrayList
Removing all duplicates from a List in Java
A Guide to Iterator in Java
Jackson Unmarshalling JSON with Unknown Properties
Rest Web service: Filter và Interceptor với Jersey 2.x (P2)
Java Program to Implement Floyd Cycle Algorithm
ClassNotFoundException vs NoClassDefFoundError
How to Get All Dates Between Two Dates?
Introduction to Spliterator in Java
Circular Dependencies in Spring