This is a Java Program to Implement Warshall Transitive closure Algorithm. Warshall’s Transitive closure algorithm is used to determine if a path exists from vertex a to vertex b for all vertex pairs (a, b) in a graph.
Here is the source code of the Java Program to Implement Warshall Algorithm. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
/** ** Java Program to Implement Warshall Algorithm **/ import java.util.Scanner; /** Class Warshall **/ public class Warshall { private int V; private boolean[][] tc; /** Function to make the transitive closure **/ public void getTC(int[][] graph) { this.V = graph.length; tc = new boolean[V][V]; for (int i = 0; i < V; i++) { for (int j = 0; j < V; j++) if (graph[i][j] != 0) tc[i][j] = true; tc[i][i] = true; } for (int i = 0; i < V; i++) { for (int j = 0; j < V; j++) { if (tc[j][i]) for (int k = 0; k < V; k++) if (tc[j][i] && tc[i][k]) tc[j][k] = true; } } } /** Funtion to display the trasitive closure **/ public void displayTC() { System.out.println("\nTransitive closure :\n"); System.out.print(" "); for (int v = 0; v < V; v++) System.out.print(" " + v ); System.out.println(); for (int v = 0; v < V; v++) { System.out.print(v +" "); for (int w = 0; w < V; w++) { if (tc[v][w]) System.out.print(" * "); else System.out.print(" "); } System.out.println(); } } /** Main function **/ public static void main (String[] args) { Scanner scan = new Scanner(System.in); System.out.println("Warshall Algorithm Test\n"); /** Make an object of Warshall class **/ Warshall w = new Warshall(); /** Accept number of vertices **/ System.out.println("Enter number of vertices\n"); int V = scan.nextInt(); /** get graph **/ System.out.println("\nEnter matrix\n"); int[][] graph = new int[V][V]; for (int i = 0; i < V; i++) for (int j = 0; j < V; j++) graph[i][j] = scan.nextInt(); w.getTC(graph); w.displayTC(); } }
Warshall Algorithm Test Enter number of vertices 6 Enter matrix 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 Transitive closure : 0 1 2 3 4 5 0 * * * * * 1 * 2 * * * * * * 3 * 4 * * 5 * * *
Related posts:
Hướng dẫn Java Design Pattern – Object Pool
Using the Map.Entry Java Class
Java Program to Perform Search in a BST
Java Program to Implement Shell Sort
Spring Boot - Actuator
Spring Security Login Page with React
Java Program to Convert a Decimal Number to Binary Number using Stacks
Spring Boot Application as a Service
Custom Thread Pools In Java 8 Parallel Streams
Hamcrest Collections Cookbook
Java Program to Find kth Smallest Element by the Method of Partitioning the Array
Hashtable trong java
Spring Boot Actuator
Send email with JavaMail
The DAO with JPA and Spring
Dynamic Proxies in Java
Documenting a Spring REST API Using OpenAPI 3.0
Spring Boot - Build Systems
Java Program to Create the Prufer Code for a Tree
Object Type Casting in Java
Java Collections Interview Questions
Hướng dẫn Java Design Pattern – Interpreter
Sao chép các phần tử của một mảng sang mảng khác như thế nào?
A Guide to Java SynchronousQueue
Java Program to Compute DFT Coefficients Directly
Add Multiple Items to an Java ArrayList
Spring Boot - Rest Template
Read an Outlook MSG file
RegEx for matching Date Pattern in Java
Introduction to Project Reactor Bus
Spring Security Authentication Provider
File Upload with Spring MVC