Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int numVert = accessNodes.size();
- for (auto iVert : accessNodes) {
- for (auto jVert : accessNodes) {
- table.insert(make_pair(make_pair(iVert, jVert), make_pair<double, Vertex<T>*>(INF, NULL)));
- // minDist.at(i).at(j) = INF;
- // next.at(i).at(j) = NULL;
- }
- }
- for (Vertex<T> * vertex : accessNodes) {
- for (const Edge<T> & edge: vertex->adj) {
- int i1 = -1;
- int i2 = -1;
- for (int i = 0; i < numVert; i++) {
- if (accessNodes.at(i)->info == vertex->info)
- i1 = i;
- }
- for (int i = 0; i < numVert; i++) {
- if (accessNodes.at(i)->info == edge.dest->info)
- i2 = i;
- }
- Vertex<T>* i1Vert = accessNodes.at(i1);
- Vertex<T>* i2Vert = accessNodes.at(i2);
- table[make_pair(i1Vert, i2Vert)] = make_pair(edge.weight, edge.dest);
- // minDist.at(i1).at(i2) = edge.weight;
- // next.at(i1).at(i2) = edge.dest;
- }
- }
- for (auto v : accessNodes) {
- table[make_pair(v, v)] = make_pair(0, v);
- // minDist.at(i).at(i) = 0;
- // next.at(i).at(i) = vertexSet.at(i);
- }
- for (auto kVert : accessNodes) {
- for (auto iVert : accessNodes) {
- for (auto jVert : accessNodes) {
- double val = table.at(make_pair(iVert, kVert)).first + table.at(make_pair(kVert, jVert)).first;
- if (table.at(make_pair(iVert, jVert)).first > val) {
- table[make_pair(iVert, jVert)] = make_pair(val, table.at(make_pair(iVert, kVert)).second);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement