int loadEdges(FILE* fp, char* inbuf, EdgeList* adjInfo, int n, char alg) { int num; Cstring line; num=0; line = fgets(inbuf, 1024, fp); while (line != NULL) { Edge e = parseEdge(line, n); EdgeInfo ei; ei.to = e.to; ei.wgt = e.weight; adjInfo[e.from] = edgeCons(ei, adjInfo[e.from]); if(alg=='P') { EdgeInfo ei2; ei2.to = e.from; ei2.wgt = e.weight; adjInfo[e.to] = edgeCons(ei2, adjInfo[e.to]); } num++; line = fgets(inbuf, 1024, fp); } return num; }
EdgeList* intEdges(int m, char* instream, char line[1024], FILE* inbuff){ int n = 0; EdgeList adjVertices[m]; EdgeList* pointAdj = malloc(sizeof(EdgeList)); for(int i = 1; i <=m; i++) adjVertices[i] = edgeNil; while(instream != NULL){ Edge e = parseEdge(line); EdgeInfo P; P.to = e.to; P.wgt = e.weight; adjVertices[e.from] = edgeCons(P, adjVertices[e.from]); instream = fgets(line, 1024, inbuff); n++; } pointAdj = adjVertices; return pointAdj; }