Advertisement
Guest User

Untitled

a guest
May 23rd, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.40 KB | None | 0 0
  1. int numVert = accessNodes.size();
  2.  
  3.  
  4. for (auto iVert : accessNodes) {
  5.  
  6. for (auto jVert : accessNodes) {
  7.  
  8. table.insert(make_pair(make_pair(iVert, jVert), make_pair<double, Vertex<T>*>(INF, NULL)));
  9.  
  10. // minDist.at(i).at(j) = INF;
  11. // next.at(i).at(j) = NULL;
  12. }
  13. }
  14.  
  15. for (Vertex<T> * vertex : accessNodes) {
  16. for (const Edge<T> & edge: vertex->adj) {
  17. int i1 = -1;
  18. int i2 = -1;
  19. for (int i = 0; i < numVert; i++) {
  20. if (accessNodes.at(i)->info == vertex->info)
  21. i1 = i;
  22. }
  23. for (int i = 0; i < numVert; i++) {
  24. if (accessNodes.at(i)->info == edge.dest->info)
  25. i2 = i;
  26. }
  27.  
  28. Vertex<T>* i1Vert = accessNodes.at(i1);
  29. Vertex<T>* i2Vert = accessNodes.at(i2);
  30.  
  31. table[make_pair(i1Vert, i2Vert)] = make_pair(edge.weight, edge.dest);
  32.  
  33. // minDist.at(i1).at(i2) = edge.weight;
  34. // next.at(i1).at(i2) = edge.dest;
  35. }
  36. }
  37.  
  38. for (auto v : accessNodes) {
  39.  
  40. table[make_pair(v, v)] = make_pair(0, v);
  41.  
  42. // minDist.at(i).at(i) = 0;
  43. // next.at(i).at(i) = vertexSet.at(i);
  44. }
  45.  
  46. for (auto kVert : accessNodes) {
  47. for (auto iVert : accessNodes) {
  48. for (auto jVert : accessNodes) {
  49.  
  50. double val = table.at(make_pair(iVert, kVert)).first + table.at(make_pair(kVert, jVert)).first;
  51.  
  52. if (table.at(make_pair(iVert, jVert)).first > val) {
  53. table[make_pair(iVert, jVert)] = make_pair(val, table.at(make_pair(iVert, kVert)).second);
  54. }
  55. }
  56. }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement