解释代码( { int i,j; char v1,v2; int c; printf("请输入(Vi,Vj)对应的顶点及长度:\n"); cin>>v1>>v2>>c; //输入一条边依附的两个顶点及权值 Edge[k].Head=v1; Edge[k].Tail=v2; Edge[k].lowcost=c; i = LocateVex(G,v1); j = LocateVex(G,v2);//确定v1和v2在G中的位置,即顶点数组的下标 //G.arcs[i][j]=G.arcs[j][i]=c; G.arcs[i][j]=c; //边<v1,v2>的权值置为c G.arcs[j][i]=G.arcs[i][j]; //置<v1,v2>的对称边<v2,v1>的权值为c } //for } //辅助数组的定义,用来记录从顶点集U到V-U的权值最小的边 typedef struct Closedge { VerTexType adjvex; //最小边在U中的那个顶点 ArcType lowcost; //最小边上的权值 }closedge[MVNum]; int Min(closedge SZ,AMGraph G) //求出第k个顶点,closedge[k]中存有当前最小边 { int i=0,j,k,min; while(!SZ[i].lowcost) i++; min=SZ[i].lowcost; k=i; for(j=i+1;j<G.vexnum;j++) { if(SZ[j].lowcost>0) { if(min>SZ[j].lowcost) { min=SZ[j].lowcost; k=j; } } } return k; })
时间: 2024-04-21 20:27:00 浏览: 61
verilog代码.zip_VJ1_Verilog包含_fir_巴克码 Verilog
这段代码是为了实现Prim算法中的辅助数组和Min函数。
Closedge是一个结构体数组,用于记录从顶点集U到V-U的权值最小的边,包括最小边在U中的那个顶点和最小边上的权值。
Min是一个函数,用于求出第k个顶点,closedge[k]中存有当前最小边。具体实现是通过遍历closedge数组,找到lowcost值最小的那个顶点k,并返回其下标。其中,SZ表示closedge数组,G表示邻接矩阵表示的无向图。
这段代码主要用于Prim算法中的最小生成树部分,实现了辅助数组和求最小边的函数,供后续的Prim算法使用。
阅读全文