Я попытался написать алгоритм BFS, где nod - это первый узел, а именно вектор с элементами 0 как не посещенные и 1 как посещенные, a - это матрица смежности, n - это число узлов, q - это числоочередь.Однако по какой-то причине, которую я не понимаю, код не работает.У тебя есть идеи почему?Я был бы благодарен.Это мой код:
void BFS(int nod, int viz[], int a[100][100], int n, int q[], int *f, int *r )
{
for(int i = 1; i <= n; i++)
{
if(a[nod][i] && !viz[i])
{
(*r)++;
q[(*r)] = i;
}}
if((*f) <= (*r))
{ f++;
viz[q[(*f)]] = 1;
printf("Am vizitat nodul %d \n", *f);
BFS(q[(*f)],viz,a,n,q,&f,&r);
}
}
И я назвал его в основном так:
BFS(nod1,viz,a,n,q,&f,&r);