Алгоритм BFS возвращает ошибку сегментации - PullRequest
0 голосов
/ 26 апреля 2019

Я попытался написать алгоритм 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...