This Java program, to perform the bfs traversal of a given undirected 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 undirected 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 UndirectedConnectivityBFS { private Queue<Integer> queue; public UndirectedConnectivityBFS() { 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(); for (int i = 1; i <= number_of_nodes; i++) { for (int j = 1; j <= number_of_nodes; j++) { if (adjacency_matrix[i][j] == 1 && adjacency_matrix[j][i] == 0) { adjacency_matrix[j][i] = 1; } } } System.out.println("Enter the source for the graph"); source = scanner.nextInt(); UndirectedConnectivityBFS undirectedConnectivity= new UndirectedConnectivityBFS(); undirectedConnectivity.bfs(adjacency_matrix, source); } catch (InputMismatchException inputMismatch) { System.out.println("Wrong Input Format"); } scanner.close(); } }
$javac UndirectedConnectivityBFS.java $java UndirectedConnectivityBFS 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 Implement SynchronosQueue API
Spring Boot With H2 Database
Hướng dẫn Java Design Pattern – Dependency Injection
Java Program to Implement Ford–Fulkerson Algorithm
Java Program to Find Basis and Dimension of a Matrix
Java – Write to File
The Order of Tests in JUnit
Java Program to Perform Searching Based on Locality of Reference
Unsatisfied Dependency in Spring
Quick Guide to java.lang.System
Hướng dẫn sử dụng luồng vào ra nhị phân trong Java
How to Count Duplicate Elements in Arraylist
Convert Hex to ASCII in Java
Spring Data MongoDB – Indexes, Annotations and Converters
Hướng dẫn sử dụng Java String, StringBuffer và StringBuilder
Prevent Cross-Site Scripting (XSS) in a Spring Application
Java Program to Compute Determinant of a Matrix
The Modulo Operator in Java
Implementing a Runnable vs Extending a Thread
Upload and Display Excel Files with Spring MVC
Java Program to Implement Sparse Array
Java Program to Find the GCD and LCM of two Numbers
Spring Boot - Unit Test Cases
Jackson – Decide What Fields Get Serialized/Deserialized
Java Program to Implement Segment Tree
Java 8 Collectors toMap
Giới thiệu Java Service Provider Interface (SPI) – Tạo các ứng dụng Java dễ mở rộng
Jackson JSON Views
Java Program to Check whether Directed Graph is Connected using DFS
Java Program to Implement Circular Singly Linked List
The HttpMediaTypeNotAcceptableException in Spring MVC
Java Program to Implement Disjoint Set Data Structure