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:
Java Program to Generate a Graph for a Given Fixed Degree Sequence
Spring Boot - Tomcat Port Number
Understanding Memory Leaks in Java
Java Program to Generate Random Numbers Using Probability Distribution Function
Guide to the Java Clock Class
RestTemplate Post Request with JSON
Java Program to Remove the Edges in a Given Cyclic Graph such that its Linear Extension can be Found
Comparing Two HashMaps in Java
Java Program to Solve a Matching Problem for a Given Specific Case
Remove All Occurrences of a Specific Value from a List
Java Program to Implement Naor-Reingold Pseudo Random Function
Use Liquibase to Safely Evolve Your Database Schema
Spring Boot - Enabling HTTPS
Simplify the DAO with Spring and Java Generics
Java Program to Encode a Message Using Playfair Cipher
Java Program to Implement Bresenham Line Algorithm
Examine the internal DNS cache
Java Program to Implement the Hungarian Algorithm for Bipartite Matching
Spring Security 5 for Reactive Applications
Introduction to Liquibase Rollback
Tính đóng gói (Encapsulation) trong java
Java Program to Implement Stack
Spring Cloud AWS – RDS
ClassNotFoundException vs NoClassDefFoundError
Spring @Primary Annotation
Java Program to Sort an Array of 10 Elements Using Heap Sort Algorithm
Java Program to Search Number Using Divide and Conquer with the Aid of Fibonacci Numbers
Java Program to Implement Tarjan Algorithm
Java Program to Apply Above-Below-on Test to Find the Position of a Point with respect to a Line
Java Program to Implement the Schonhage-Strassen Algorithm for Multiplication of Two Numbers
Hướng dẫn Java Design Pattern – Flyweight
Tạo ứng dụng Java RESTful Client với thư viện Retrofit