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:
Working with Kotlin and JPA
Giới thiệu java.io.tmpdir
A Guide to Java 9 Modularity
Sorting in Java
Java Program to Implement Radix Sort
Java Program to Generate a Random Subset by Coin Flipping
Java Program to Generate Random Numbers Using Probability Distribution Function
Implementing a Binary Tree in Java
Spring Security with Maven
Java Program to Perform Preorder Non-Recursive Traversal of a Given Binary Tree
Converting Java Date to OffsetDateTime
Introduction to Spring Cloud Stream
List Interface trong Java
Java Program to Compute the Volume of a Tetrahedron Using Determinants
Hướng dẫn Java Design Pattern – Observer
Java Program to Implement Floyd-Warshall Algorithm
Java Program to implement Bit Set
Giới thiệu JDBC Connection Pool
How to Return 404 with Spring WebFlux
Reading an HTTP Response Body as a String in Java
Java Program to Implement Binary Search Tree
Guide to Spring @Autowired
Java Program to Compare Binary and Sequential Search
Java Program to Implement Quick Sort Using Randomization
Introduction to the Java NIO Selector
Phân biệt JVM, JRE, JDK
A Guide to Spring Cloud Netflix – Hystrix
Filtering a Stream of Optionals in Java
Functional Interfaces in Java 8
Java Program to Implement Max Heap
Java Program to Perform Deletion in a BST
Spring Boot - Batch Service