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:
Giới thiệu Json Web Token (JWT)
JUnit5 @RunWith
Converting String to Stream of chars
Java Program to Solve Tower of Hanoi Problem using Stacks
Concrete Class in Java
Java Program to Find k Numbers Closest to Median of S, Where S is a Set of n Numbers
Java Program to Perform Cryptography Using Transposition Technique
Predicate trong Java 8
Apache Camel with Spring Boot
Java Program to Implement Queue using Two Stacks
Introduction to the Java NIO Selector
Java Program to Solve Set Cover Problem assuming at max 2 Elements in a Subset
Filtering and Transforming Collections in Guava
Changing Annotation Parameters At Runtime
Java Program to Implement Bucket Sort
Các kiểu dữ liệu trong java
Giới thiệu Google Guice – Aspect Oriented Programming (AOP)
Introduction to Spring Data MongoDB
Reactive WebSockets with Spring 5
Tạo ứng dụng Java RESTful Client với thư viện Retrofit
Spring Security – Reset Your Password
Java Program to Implement Network Flow Problem
Java Program to Implement Sieve Of Sundaram
Spring MVC Content Negotiation
Marker Interface trong Java
Spring Boot - Tomcat Deployment
Java Program to Implement Control Table
Hướng dẫn Java Design Pattern – Chain of Responsibility
Spring Security OAuth Login with WebFlux
Java Program to Implement Park-Miller Random Number Generation Algorithm
Spring Boot - Google OAuth2 Sign-In
Java Timer