正在加载图片...
Status Insert Arc( MGraph&G, char v, char w∥在邻接矩阵表示的图G上插入边 if(LOcate Vex(G, v)0)return ERROR; if(=Locate Vex(G, w)<0)return ERROR; if(i-D return ERROR if(!G arcs[00]adj) G arcs[].adF1; G arcum++ return OK. 3//nsert Arc Status delete vex( MGraph&G, char v∥在邻接矩阵表示的图G上删除顶点v n=G vexnum if((m=Locate Vex(G, v))<0)return ERROR; G. vex[m]<-> G vex[n],/将待删除顶点交换到最后一个顶点 for(F0; i<n; i++) G arcs[m=G arcs[n]: G. arcs][= G arcs[;∥将边的关系随之交换 Garcs m). adF0 G. vexnun return OK i/Delete Vex 分析:如果不把待删除顶点交换到最后一个顶点的话,算法将会比较复杂而伴随 着大量元素的移动时间复杂度也会大大增加 Status delete arc( MGraph&G, char v, char w/在邻接矩阵表示的图G上删除边 (v,w) If(( Locate Vex(G, v)o) return ERROR, if(LOcate Vex(G, w)0)return ERROR; if(G arcs[O0adj) G arcs[]adj=0; G. arcnum-- return OK i//Delete Arc 7.16Status Insert_Arc(MGraph &G,char v,char w)//在邻接矩阵表示的图 G 上插入边 (v,w) { if((i=LocateVex(G,v))<0) return ERROR; if((j=LocateVex(G,w))<0) return ERROR; if(i==j) return ERROR; if(!G.arcs[i][j].adj) { G.arcs[i][j].adj=1; G.arcnum++; } return OK; }//Insert_Arc Status Delete_Vex(MGraph &G,char v)//在邻接矩阵表示的图 G 上删除顶点 v { n=G.vexnum; if((m=LocateVex(G,v))<0) return ERROR; G.vexs[m]<->G.vexs[n]; //将待删除顶点交换到最后一个顶点 for(i=0;i<n;i++) { G.arcs[i][m]=G.arcs[i][n]; G.arcs[m][i]=G.arcs[n][i]; //将边的关系随之交换 } G.arcs[m][m].adj=0; G.vexnum--; return OK; }//Delete_Vex 分析:如果不把待删除顶点交换到最后一个顶点的话,算法将会比较复杂,而伴随 着大量元素的移动,时间复杂度也会大大增加. Status Delete_Arc(MGraph &G,char v,char w)//在邻接矩阵表示的图 G 上删除边 (v,w) { if((i=LocateVex(G,v))<0) return ERROR; if((j=LocateVex(G,w))<0) return ERROR; if(G.arcs[i][j].adj) { G.arcs[i][j].adj=0; G.arcnum--; } return OK; }//Delete_Arc 7.16
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有