import java.util.*; /** * Implementation of a Breadth First Search * * @author Unknown * */ public class bfs{ /** * The BFS implemented in code to use. * * @param a Structure to perform the search on * @param vertices The vertices to use * @param source The Source */ public static void bfs(byte [][] a,int vertices,int source){ //passing adjacency matrix and no of vertices byte []b=new byte[vertices]; //flag container containing status of each vertices Arrays.fill(b,(byte)-1); //status initialization /* code status -1 = ready 0 = waiting 1 = processed */ Queue st=new Queue<>(); //operational stack st.add(source); //assigning source while(!st.isEmpty()){ b[st.peek()]=(byte)0; //assigning waiting status System.out.println(st.element()); int pop=st.element(); b[pop]=(byte)1; //assigning processed status st.remove(); //removing head of the queue for(int i=0;i