真題2015 無向圖採用鄰接表儲存方式,刪除邊
阿新 • • 發佈:2018-12-19
題目:已知無向圖採用鄰接表儲存方式,試寫出刪除邊(i,j)的演算法。
在這裡插入程式碼片 voidDeletEdge(AdjListg,inti,int j){//在用鄰接表方式儲存的無向圖g中,刪除邊(i,j) p=g[i].firstarc;pre=null; //刪頂點i的邊結點(i,j),pre是前驅指標 while(p) if(p->adjvex==j){ if(pre==null) g[i].firstarc=p->next; elsepre->next=p->next;free(p); }//釋放結點空間。 else{ pre=p;p=p->next; } //沿連結串列繼續查詢 p=g[j].firstarc;pre=null; //刪頂點j的邊結點(j,i),pre是前驅指標 while(p) if(p->adjvex==i){ if( pre==null ) g[j].firstarc=p->next; else pre->next=p->next;free(p); }//釋放結點空間。 else{ pre=p;p=p->next; } //沿連結串列繼續查詢 }