import java.util.LinkedList;
import java.util.Queue;
public class BFSExample {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[][] conn = { { 0, 1, 0, 1, 0, 0, 0, 0, 1 },
// 0
{ 1, 0, 0, 0, 0, 0, 0, 1, 0 },
// 1
{ 0, 0, 0, 1, 0, 1, 0, 1, 0 },
// 2
{ 1, 0, 1, 0, 1, 0, 0, 0, 0 },
// 3
{ 0, 0, 0, 1, 0, 0, 0, 0, 1 },
// 4
{ 0, 0, 1, 0, 0, 0, 1, 0, 0 },
// 5
{ 0, 0, 0, 0, 0, 1, 0, 0, 0 },
// 6
{ 0, 1, 1, 0, 0, 0, 0, 0, 0 },
// 7
{ 1, 0, 0, 0, 1, 0, 0, 0, 0 } };
// 8
BFS(conn);
}
public static void BFS(
int[][] conn) {
Queue q =
new LinkedList();
boolean[] visited =
new boolean[conn.length];
for(
int i = 0; i < visited.length; i++){
visited[i] =
false;
}
q.add(0);
while(!q.isEmpty()){
int nextNode;
int i;
nextNode= (
int) q.remove();
if(!visited[nextNode]){
visited[nextNode] =
true;
System.out.println(
"nextNode = "+ nextNode);
for(i = 0; i < visited.length; i++){
if(conn[nextNode][i] > 0 && !visited[i]){
q.add(i);
}
}
}
}
}
}