
如上图,我们可以把v0标记为0,v1标记为1。。。。
并把联通的2点权值全设置为1,那么可以用邻接矩阵(右图)来表示<??http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+uMXE7r3izvajujwvcD4KPHA+tdrSu7j2wdq907alteOjujwvcD4KPHA+ztLDx9LUdm/OqsD9o6y12tK7uPbB2r3TtqW1486qVjGjqMbkyrXSsr/J0tTKuVYzo6zWu7K7uf2/vMLHvMbL47v6tcS05rSiy7PQ8qOsztLDx9XSwdq907alteOjrNK7sOPKx7TTdjDJqMPotb12M6Osy/nS1M7Sw8fPyNTaxNq05tbQyajD6LW9djGjqTwvcD4KPHA+z8LSu7j2wdq907alteOjujwvcD4KPHA+ztLDx9LUdjDOqsD9o6zPwtK7uPbB2r3TtqW1477Nysd2M6OozazR+aOsxuTKtdKyv8nS1Mq5VjGjrNa7sru5/b+8wse8xsvju/q1xLTmtKLLs9Dyo6zO0sPH1dLPwrj2wdq907alteOjrNK7sOPKx7TTdjLJqMPotb12M6Os1q7L+dLUtNN2Msmow+jG8KOsxMfKx9LyzqqjrFYx0tG+rcrHtdrSu7j2wdq907altePBy6OsxMfDtM/C0ru49sHavdO2pbXj0ru2qMrH1NrE2rTm1tC05rSi1NpWMbrztcTK/b7dwcujqTwvcD4KPHA+PGJyPgo8L3A+CjxwPs7ez/LNvMHavdO+2NXztcTM2LXjo7o8L3A+CjxwPrbUvcfP38ioJiMyMDU0MDvKxzA8L3A+CjxwPs7ez/LNvL7Y1fO52NPa0LHP37bUs8ajqNPQz/LNvLK7ttSzxqOpPC9wPgo8cD48YnI+CjwvcD4KPHA+tPrC68jnz8KjujwvcD4KPHA+PHByZSBjbGFzcz0="brush:java;">#include
using namespace std; #define VertexSize 10 typedef struct { int weight[VertexSize][VertexSize]; //表示2个顶点之间的权值 int edgenum; //表示图的边数目 }Graph; //初始化图 void Initiate_Graph(Graph *g,int n) { int i,j; g->edgenum=0; for(i=0;i
weight[i][j]=0; //对角线表示顶点自己到自己,权值为0 else g->weight[i][j]=0x7fff; //其他权值初始化为无限大 } } //插入边 void InsertEdge(Graph *g,int v,int w,int weight,int n) { if(v<0 || v>=n||w<0||w>=n) { cout<<"overflow!"<
weight[v][w]=weight; g->edgenum++; } //取得点V的第一个临接顶点 int GetFirstVertex(Graph *g,int v,int n) { if(v<0||v>=n) { cout<<"overflow"<
weight[v][i])>0 )&&( (g->weight[v][i])<0x7fff) ) return i; } return -1; } //取得顶v的下一个邻接顶点 int GetNextVertex(Graph *g,int v,int w,int n) { if(v<0||v>=n||w<0||w>=n) { cout<<"overflow"<
weight[v][i])>0 )&& ((g->weight[v][i])<0x7fff )) return i; } return -1; } //删除边 void DeleteEdge(Graph *g,int v,int w,int n) { if(v<0||v>=n||w<0||w>=n||v==w) { cout<<"error"<
weight[v][w]=0x7fff; g->edgenum--; } void PrintGraph(Graph *g,int n) { int y,x,i; for(i=0;i
>n; cout<<"请输入图的边个数"<
>edge; Initiate_Graph(&g,n); int i,p1,p2,weight; cout<<"请输入顶点-顶点-权值:"<
>p1>>p2>>weight; InsertEdge(&g,p1,p2,weight,n); } PrintGraph(&g,n); cout<<"输入需要删除的边:"<
>e1>>e2; DeleteEdge(&g,e1,e2,n); cout<<"删除后边的数目为:"<