BFS算法返回分段错误

时间:2019-04-25 21:05:25

标签: c graph breadth-first-search

我试图写一个BFS算法,其中nod是第一个节点,viz是一个向量,元素为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);
        }
    }

我在main中这样称呼它:

BFS(nod1,viz,a,n,q,&f,&r);

0 个答案:

没有答案