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:
Introduction to Spring Data JDBC
Tìm hiểu cơ chế Lazy Evaluation của Stream trong Java 8
Inheritance and Composition (Is-a vs Has-a relationship) in Java
Java Program to Perform Addition Operation Using Bitwise Operators
Java Program to Find Nearest Neighbor for Static Data Set
A Guide to Java 9 Modularity
Java Program to Implement Doubly Linked List
Instance Profile Credentials using Spring Cloud
Giới thiệu Google Guice – Injection, Scope
Java Program to Find Basis and Dimension of a Matrix
Java Concurrency Interview Questions and Answers
Java Program to Implement Max-Flow Min-Cut Theorem
Introduction to Spring Cloud Netflix – Eureka
Java Program to Perform the Sorting Using Counting Sort
Auditing with JPA, Hibernate, and Spring Data JPA
How to Define a Spring Boot Filter?
Format ZonedDateTime to String
LinkedList trong java
Giới thiệu SOAP UI và thực hiện test Web Service
Deque và ArrayDeque trong Java
Spring Boot Application as a Service
Xử lý ngoại lệ trong Java (Exception Handling)
Lớp Properties trong java
Tránh lỗi ConcurrentModificationException trong Java như thế nào?
ClassNotFoundException vs NoClassDefFoundError
Zipping Collections in Java
Converting Between a List and a Set in Java
Tính đa hình (Polymorphism) trong Java
Java Program to Find kth Smallest Element by the Method of Partitioning the Array
Spring Data JPA @Modifying Annotation
Debug a HttpURLConnection problem
Java Program to Implement Suffix Tree