Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- package bfs.algorithm;
- import java.util.Iterator;
- import java.util.LinkedList;
- import java.util.Queue;
- import java.util.Scanner;
- /**
- *
- * @author Masud pervej
- */
- public class BFSAlgorithm {
- /**
- * @param args the command line arguments
- */
- public static void main(String[] args) {
- Scanner in = new Scanner(System.in);
- System.out.println("Input Max Node Number:");
- int maxNodeNumber = in.nextInt();
- int[][] matrix = new int[100][100];
- int[] vis = new int[100];
- int[] level = new int[100];
- System.out.println("Input Graph:");
- for(int i = 0; i <= maxNodeNumber; i++)
- {
- for(int j = 0; j <= maxNodeNumber; j++){
- matrix[i][j] = in.nextInt();
- }
- vis[i] = 0;
- }
- System.out.println("Input Array: ");
- for(int i = 0; i <= maxNodeNumber; i++)
- {
- for(int j = 0; j <= maxNodeNumber; j++)
- {
- System.out.print(matrix[i][j] + " ");
- }
- System.out.println("");
- }
- System.out.println("Starting Node:");
- int startNode = in.nextInt();
- Queue<Integer> q = new LinkedList<>();
- q.add(startNode);
- vis[0] = 1;
- level[startNode] = 0;
- while(q.size() > 0)
- {
- int u = q.peek();
- q.remove();
- for(int i = 0; i <= maxNodeNumber; i++){
- if(matrix[u][i] == 1 && vis[i] == 0){
- q.add(i);
- vis[i] = 1;
- level[i] = level[u] + 1;
- }
- }
- }
- System.out.println("Nodes\tLevel");
- for (int i = 0; i <= maxNodeNumber; i++)
- {
- System.out.println(i + " --> " +level[i]);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement