Witam serdecznie mam do napisania w javie kod algorytmu bfs i napisalem go owszem przeszukuje te wierzchołki które jest w stanie tylko w nieodpowiedniej kolejności i nie do końca wiem dlaczego mogł by ktoś z wprawnym okiem sprawdzić warunki dodawania do kolejki;p z góry dziękuje na bazie macierzy sasiedztwa
public void bfs(int start)
{
int[] kolejnoscOdw=new int[size];
int licznikKol=0;
boolean []czyOdwiedzony=new boolean[size];
System.out.println("BFS");
PriorityQueue kolejka=new PriorityQueue(); // kolejka z java doc
kolejka.offer(start); //pierwszy punkt do kolejki
czyOdwiedzony[start]=true;
while(kolejka.peek()!=null)
{
int a=(int)kolejka.poll();
kolejnoscOdw[licznikKol]=a;
licznikKol++;
System.out.println(a);
for(int i=0;i<size;i++)
{
if(a!=i&&czyOdwiedzony[i]!=true&&check(a,i)==true)
{
czyOdwiedzony[i]=true;
kolejka.offer(i);
}
//}
}
}
//********************************************WYPISYWANIE************************
for(int i=0;i<size;i++)
{
System.out.println("czy punkt: "+i+" zostal odwiedzony?: "+czyOdwiedzony[i]+",");
}
System.out.println("kolejnosc odwiedzania punktow: ");
for(int i=0;i<size;i++)
{
System.out.print(kolejnoscOdw[i]+",");
}
}