package sachi.test.datastructures;
import java.util.Queue;
import java.util.LinkedList;
import java.util.Scanner;
public class BreadthFirstSearch {
private Queue<Integer> queue;
public BreadthFirstSearch(){
queue= new LinkedList<Integer>();
}
public void breadthFirstSearch(int adjmtrx[][], int source){
int no_of_nodes=adjmtrx[source].length-1;
int visited[]=new int[no_of_nodes +1];
int i, element;
visited[source]=1;
queue.add(source);
while(!queue.isEmpty()){
element=queue.remove();
i=element;
System.out.print(i + "\t");
while(i<=no_of_nodes){
if(adjmtrx[element][i]==1 && visited[i]==0){
queue.add(i);
visited[i]=1;
}
i++;
}
}
}
public static void main(String[] args) {
int no_of_nodes,source;
Scanner scanner = null;
try{
System.out.println("Enter the number of nodes in the graph");
scanner = new Scanner(System.in);
no_of_nodes= scanner.nextInt();
int adjmtrx[][]=new int[no_of_nodes+1][no_of_nodes+1];
System.out.println("Enter the adjacency matrix");
for (int i = 1; i <= no_of_nodes; i++)
for (int j = 1; j <= no_of_nodes; j++)
adjmtrx[i][j] = scanner.nextInt();
System.out.println("Enter the source for the graph");
source = scanner.nextInt();
System.out.println("The BFS Traversal for the graph is given by ");
BreadthFirstSearch bfs = new BreadthFirstSearch();
bfs.breadthFirstSearch(adjmtrx, source);
}catch(Exception e){
}
scanner.close();
}
}
No comments:
Post a Comment