2012-12-16 52 views
1

在圖中的節點之間的距離,我寫了下面的代碼:使用BFS

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

什麼我需要添加,使其計算在圖中,兩個節點之間的距離? 我一直在嘗試,我無法得到它的工作。

+0

您是否在尋找2個節點之間的最短路徑? – benjarobin

+0

是的,最短的。 –

回答

0

那麼,我前段時間實現了相同的代碼,但無法找到它。 Amyway,Dijkstra's算法就是你需要的。

乾杯。