我写了以下代码:

void bfs(graph *g, int start)
{
    int i;
    int visited[MAXVERTS], next;
    for (i = 0; i < g -> nodes; i++)
        visited[i] = 0;
    visited[start] = 1;
    printf("%d", start);
    queuePtr q;
    q = QueueCreate();
    QueueEnter(q,start);
    while(!QueueIsEmpty(q))
    {
        next=QueueDelete(q);
        node *p=g->adjList[next];
        while(p)
        {
            if(!visited[p->index])
                visited[p->index] = 1;
            QueueEnter(q,p->index);
        }
        p=p->link;
    }
}

我需要添加什么来计算图中两个节点之间的距离?
我一直在努力,但没能成功。

最佳答案

好吧,我以前实现过同样的代码,但是找不到。我的意思是,Dijkstra's算法是你需要的。
干杯。

关于c - 使用bfs的图中节点之间的距离,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13905025/

10-11 16:10