Thursday, October 20, 2016

BFS Exmaple

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

No comments:

Post a Comment