Tuesday, April 1, 2014

Breadth First Search Implementation in Java

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