This Java program, to perform the bfs traversal of a given directed graph in the form of the adjacency matrix and check for the connectivity of the graph.the bfs traversal makes use of a queue.
Here is the source code of the Java program to check the connectivity of the directed graph using BFS. The Java program is successfully compiled and run on a Linux system. The program output is also shown below.
import java.util.InputMismatchException;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class DirectedConnectivityBFS
{
private Queue<Integer> queue;
public DirectedConnectivityBFS()
{
queue = new LinkedList<Integer>();
}
public void bfs(int adjacency_matrix[][], int source)
{
int number_of_nodes = adjacency_matrix.length - 1;
int[] visited = new int[number_of_nodes + 1];
int i, element;
visited = 1;
queue.add(source);
while (!queue.isEmpty())
{
element = queue.remove();
i = element;
while (i <= number_of_nodes)
{
if (adjacency_matrix[element][i] == 1 && visited[i] == 0)
{
queue.add(i);
visited[i] = 1;
}
i++;
}
}
boolean connected = false;
for (int vertex = 1; vertex <= number_of_nodes; vertex++)
{
if (visited[vertex] == 1)
{
connected = true;
} else
{
connected = false;
break;
}
}
if (connected)
{
System.out.println("The graph is connected");
} else
{
System.out.println("The graph is disconnected");
}
}
public static void main(String... arg)
{
int number_no_nodes, source;
Scanner scanner = null;
try
{
System.out.println("Enter the number of nodes in the graph");
scanner = new Scanner(System.in);
number_no_nodes = scanner.nextInt();
int adjacency_matrix[][] = new int[number_no_nodes + 1][number_no_nodes + 1];
System.out.println("Enter the adjacency matrix");
for (int i = 1; i <= number_no_nodes; i++)
for (int j = 1; j <= number_no_nodes; j++)
adjacency_matrix[i][j] = scanner.nextInt();
System.out.println("Enter the source for the graph");
source = scanner.nextInt();
DirectedConnectivityBFS directedConnectivity= new DirectedConnectivityBFS();
directedConnectivity.bfs(adjacency_matrix, source);
} catch (InputMismatchException inputMismatch)
{
System.out.println("Wrong Input Format");
}
scanner.close();
}
}
$javac DirectedConnectivityBFS.java $java DirectedConnectivityBFS Enter the number of nodes in the graph 5 Enter the adjacency matrix 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Enter the source for the graph 1 The graph is disconnected
Related posts:
Setting Up Swagger 2 with a Spring REST API
Copy a List to Another List in Java
Java Program to Compute DFT Coefficients Directly
Java Program to implement Sparse Vector
Biểu thức Lambda trong Java 8 – Lambda Expressions
Java Program to Implement ArrayList API
A Guide to JUnit 5
Encode a String to UTF-8 in Java
Reactive WebSockets with Spring 5
Java Program to Perform Preorder Non-Recursive Traversal of a Given Binary Tree
Constructor Injection in Spring with Lombok
Java Program to Implement Efficient O(log n) Fibonacci generator
Java Program to Implement Interval Tree
Mapping Nested Values with Jackson
Spring Cloud – Adding Angular
How to Get the Last Element of a Stream in Java?
Java Program to Implement Gift Wrapping Algorithm in Two Dimensions
How to Manually Authenticate User with Spring Security
Chuyển đổi từ HashMap sang ArrayList
Spring Security Basic Authentication
Java Program to Implement the Vigenere Cypher
Intro to Spring Boot Starters
Java Program to Implement Segment Tree
Java Program to Implement Iterative Deepening
Java Program to Check Whether Graph is DAG
Server-Sent Events in Spring
Spring Boot with Multiple SQL Import Files
Dynamic Proxies in Java
Spring Boot - Actuator
Interface trong Java 8 – Default method và Static method
Java Program to Implement Aho-Corasick Algorithm for String Matching
Java Program to Implement Stein GCD Algorithm