求有向圖兩點間所有簡單路徑
阿新 • • 發佈:2019-01-02
ALGraph G; char way[G.vexnum]; way[0] = G.vertices[u].data; Status Findway_on_DG(ALGraph G,int u,int v,int found){ //在以鄰接表儲存的有向圖G中輸出從編號為u的頂點到編號為v的頂點的所有簡單路徑 //前found個頂點是已經確定的頂點,初始呼叫Findway_on_DG(G,u,v,1) if(u == v){//找到一條簡單路徑 for(i = 0;i < found;i++) cout << way[i]; cout << endl; return OK; }//if for(p = G.vertices[u].firstarc;p;p = p->nextarc){ if(!In_the_way(G.vertices[p->agjvex].data)){//保證簡單路徑 way[found] = G.vertices[p->agjvex].data; Findway_on_DG(G,p->adjvex,v,found + 1); }//if }//for return OK; }//Findway_on_DG