This Java program is to find all pairs shortest path.This program finds the shortest distance between every pair of vertex in the graph.
Here is the source code of the Java program to find all pairs shortest path. The Java program is successfully compiled and run on a Linux system. The program output is also shown below.
import java.util.Scanner;
public class AllPairShortestPath
{
private int distancematrix[][];
private int numberofvertices;
public static final int INFINITY = 999;
public AllPairShortestPath(int numberofvertices)
{
distancematrix = new int[numberofvertices + 1][numberofvertices + 1];
this.numberofvertices = numberofvertices;
}
public void allPairShortestPath(int adjacencymatrix[][])
{
for (int source = 1; source <= numberofvertices; source++)
{
for (int destination = 1; destination <= numberofvertices; destination++)
{
distancematrix[destination] = adjacencymatrix[destination];
}
}
for (int intermediate = 1; intermediate <= numberofvertices; intermediate++)
{
for (int source = 1; source <= numberofvertices; source++)
{
for (int destination = 1; destination <= numberofvertices; destination++)
{
if (distancematrix[intermediate] + distancematrix[intermediate][destination]
< distancematrix[destination])
distancematrix[destination] = distancematrix[intermediate]
+ distancematrix[intermediate][destination];
}
}
}
for (int source = 1; source <= numberofvertices; source++)
System.out.print("\t" + source);
System.out.println();
for (int source = 1; source <= numberofvertices; source++)
{
System.out.print(source + "\t");
for (int destination = 1; destination <= numberofvertices; destination++)
{
System.out.print(distancematrix[destination] + "\t");
}
System.out.println();
}
}
public static void main(String... arg)
{
int adjacency_matrix[][];
int numberofvertices;
Scanner scan = new Scanner(System.in);
System.out.println("Enter the number of vertices");
numberofvertices = scan.nextInt();
adjacency_matrix = new int[numberofvertices + 1][numberofvertices + 1];
System.out.println("Enter the Weighted Matrix for the graph");
for (int source = 1; source <= numberofvertices; source++)
{
for (int destination = 1; destination <= numberofvertices; destination++)
{
adjacency_matrix[destination] = scan.nextInt();
if (source == destination)
{
adjacency_matrix[destination] = 0;
continue;
}
if (adjacency_matrix[destination] == 0)
{
adjacency_matrix[destination] = INFINITY;
}
}
}
System.out.println("The Transitive Closure of the Graph");
AllPairShortestPath allPairShortestPath= new AllPairShortestPath(numberofvertices);
allPairShortestPath.allPairShortestPath(adjacency_matrix);
scan.close();
}
}
$javac AllPairShortestPath.java $java AllPairShortestPath Enter the number of vertices 4 Enter the Weighted Matrix for the graph 0 0 3 0 2 0 0 0 0 7 0 1 6 0 0 0 The Transitive Closure of the Graph 1 2 3 4 1 0 10 3 4 2 2 0 5 6 3 7 7 0 1 4 6 16 9 0
Related posts:
Java Program to Implement the Binary Counting Method to Generate Subsets of a Set
Java – InputStream to Reader
Java Program to Implement Hash Tables with Double Hashing
Spring 5 Testing with @EnabledIf Annotation
Predicate trong Java 8
Java Program to Compute Cross Product of Two Vectors
Java Program to Perform Addition Operation Using Bitwise Operators
How to Break from Java Stream forEach
Convert char to String in Java
Java Program to Implement Graham Scan Algorithm to Find the Convex Hull
Convert XML to JSON Using Jackson
Java Program to Find a Good Feedback Vertex Set
Java Program to Find the Mode in a Data Set
Spring Boot - Twilio
Multipart Upload with HttpClient 4
Guide to Apache Commons CircularFifoQueue
Java Program to Delete a Particular Node in a Tree Without Using Recursion
Upload and Display Excel Files with Spring MVC
Period and Duration in Java
Hướng dẫn Java Design Pattern – Visitor
Spring Boot - Interceptor
Java Program to Perform Preorder Non-Recursive Traversal of a Given Binary Tree
Daemon Threads in Java
Creating a Web Application with Spring 5
A Guide to Spring Boot Admin
Uploading MultipartFile with Spring RestTemplate
Fixing 401s with CORS Preflights and Spring Security
Introduction to Netflix Archaius with Spring Cloud
Java Program to Perform Searching in a 2-Dimension K-D Tree
Java Program to Check if an UnDirected Graph is a Tree or Not Using DFS
Spring Boot - Unit Test Cases
Java Program to Implement D-ary-Heap