0
Я не знаю, почему вывод этой программы не является правильным. Его только что напечатал первый посетивший узел. До сих пор, насколько я знаю, алгоритм верен. Пожалуйста, помогите мне найти ошибку. БЛАГОДАРЯЗастрял в коде для BFS (поиск по ширине)
import java.util.Scanner;
public class bfs {
static void bf(int v,int []vis,int n,int [][]a){
int []q;
int u;
int f=0,r=-1;
q=new int[20];
q[++r]=v;
vis[v]=1;
while(f<=r){
u=q[f];
System.out.println(u);
for(int i=1;i<=n;i++){
if(a[u][i]==1&&vis[i]==0){
q[++f]=i;
vis[i]=1;
}
}
f++;
}
}
public static void main(String[] args){
int []vis=new int [20];
int [][]a=new int [20][20];
int source,n;
System.out.println("Enter the number of vertex");
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
System.out.println("Enter the adjacency matrix");
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++)
a[i][j]=sc.nextInt();
vis[i]=0;
}
System.out.println("Enter the source vertex\n");
source=sc.nextInt();
System.out.println("Nodes reached from "+source+"\n");
bf(source,vis,n,a);
}
}
Что такое правильный выход? Вы должны опубликовать свой тестовый ввод и желаемый результат. Как указано в руководствах, пожалуйста, создайте [Минимальный, Полный и Подтверждаемый пример] (http://stackoverflow.com/help/mcve). – tmthydvnprt