Showing posts with label Breadth First Search Implementation in Java. Show all posts
Showing posts with label Breadth First Search Implementation in Java. Show all posts

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();

}


}