List *dijkstraModif(Graph*g,GVertex *vertexIni,GVertex *vertexFin,cmpfn fn){ List *path; GVertex *v,*v1,*v2; GEdge *e; NodeList *n,*n1,*n2; int tentative=MAX_DIST,distance=0,contr=0; path=listNew(); graphInit(g); v=graphSearchVertex(g,gVertexGetContent(vertexIni),fn); //v1=graphSearchVertex(g,gVertexGetContent(vertexFin),fn); if(v!=NULL) listAddNode(path,nodeListNew(v)); else return path; for(n2=listGetHeader(gVertexGetAdjacents(v1));n2!=NULL;n2=nodeListGetNext(n2)) { e=nodeListGetCont(n2); if(tentative>=gEdgeGetWeight(e)) { tentative=gEdgeGetWeight(e); v2=gEdgeGetDestination(e); contr=contr+tentative; //Cambio para Sugerir amigo if(v2!=NULL && contr<=CONSTW)//Cambio para Sugerir amigo hasta una compatibilidad <= CONSTW (100) { /*if(v!=v2)*/ listAddNode(path,nodeListNew(v2)); /*if(v1==v2) return path;*/ } if(contr>CONSTW) //Cambio para Sugerir amigo return path; distance=tentative; } else distance=distance; } return path;}