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:
Java Program to Implement Circular Singly Linked List
Hướng dẫn sử dụng luồng vào ra nhị phân trong Java
Java Program to Implement Disjoint Sets
Hướng dẫn Java Design Pattern – Transfer Object
Java Program to Implement Horner Algorithm
Chương trình Java đầu tiên
A Guide to Spring Cloud Netflix – Hystrix
Lập trình đa luồng với CompletableFuture trong Java 8
Java Program to Implement Find all Forward Edges in a Graph
Java Program to Construct an Expression Tree for an Infix Expression
Guide to CopyOnWriteArrayList
A Custom Data Binder in Spring MVC
Lớp lồng nhau trong java (Java inner class)
Java Program to Implement Expression Tree
Spring Boot - Servlet Filter
A Guide to @RepeatedTest in Junit 5
Explain about URL and HTTPS protocol
Cài đặt và sử dụng Swagger UI
Using Java Assertions
Guide to Java OutputStream
Java Program to Generate All Possible Combinations Out of a, b, c, d, e
Date Time trong Java 8
Java Program to Construct K-D Tree for 2 Dimensional Data
Arrays.asList vs new ArrayList(Arrays.asList())
Java Program to Implement Quick Hull Algorithm to Find Convex Hull
Java Program to Perform Sorting Using B-Tree
Spring Boot Gradle Plugin
Java Program to Delete a Particular Node in a Tree Without Using Recursion
Java Program to Implement Floyd Cycle Algorithm
Composition, Aggregation, and Association in Java
Java Program to Generate Date Between Given Range
Display Auto-Configuration Report in Spring Boot