1

私は次のコードを書きました:

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;  
    }  
}  

グラフ内の2つのノード間の距離を計算するには、何を追加する必要がありますか?私は試してきましたが、動作させることができません。

4

1 に答える 1

0

さて、私はしばらく前に同じコードを実装しましたが、それを見つけることができません。エイミーウェイ、ダイクストラのアルゴリズムはあなたが必要とするものです。

乾杯。

于 2012-12-17T04:38:01.000 に答える