我写了以下代码:
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/