... | ... |
@@ -1067,8 +1067,10 @@ |
1067 | 1067 |
//Pointer to the digraph the algorithm runs on. |
1068 | 1068 |
void *_g; |
1069 | 1069 |
//Pointer to the length map |
1070 | 1070 |
void *_length; |
1071 |
//Pointer to the map of processed nodes. |
|
1072 |
void *_processed; |
|
1071 | 1073 |
//Pointer to the map of predecessors arcs. |
1072 | 1074 |
void *_pred; |
1073 | 1075 |
//Pointer to the map of distances. |
1074 | 1076 |
void *_dist; |
... | ... |
@@ -1079,9 +1081,9 @@ |
1079 | 1081 |
/// Constructor. |
1080 | 1082 |
|
1081 | 1083 |
/// This constructor does not require parameters, therefore it initiates |
1082 | 1084 |
/// all of the attributes to default values (0, INVALID). |
1083 |
DijkstraWizardBase() : _g(0), _length(0), _pred(0), |
|
1085 |
DijkstraWizardBase() : _g(0), _length(0), _processed(0), _pred(0), |
|
1084 | 1086 |
_dist(0), _source(INVALID) {} |
1085 | 1087 |
|
1086 | 1088 |
/// Constructor. |
1087 | 1089 |
|
... | ... |
@@ -1093,9 +1095,9 @@ |
1093 | 1095 |
/// \param s The source node. |
1094 | 1096 |
DijkstraWizardBase(const GR &g,const LM &l, Node s=INVALID) : |
1095 | 1097 |
_g(reinterpret_cast<void*>(const_cast<GR*>(&g))), |
1096 | 1098 |
_length(reinterpret_cast<void*>(const_cast<LM*>(&l))), |
1097 |
_pred(0), _dist(0), _source(s) {} |
|
1099 |
_processed(0), _pred(0), _dist(0), _source(s) {} |
|
1098 | 1100 |
|
1099 | 1101 |
}; |
1100 | 1102 |
|
1101 | 1103 |
/// Auxiliary class for the function type interface of Dijkstra algorithm. |
... | ... |
@@ -1172,10 +1174,14 @@ |
1172 | 1174 |
if(Base::_source==INVALID) throw UninitializedParameter(); |
1173 | 1175 |
Dijkstra<Digraph,LengthMap,TR> |
1174 | 1176 |
dij(*reinterpret_cast<const Digraph*>(Base::_g), |
1175 | 1177 |
*reinterpret_cast<const LengthMap*>(Base::_length)); |
1176 |
if(Base::_pred) dij.predMap(*reinterpret_cast<PredMap*>(Base::_pred)); |
|
1177 |
if(Base::_dist) dij.distMap(*reinterpret_cast<DistMap*>(Base::_dist)); |
|
1178 |
if(Base::_processed) |
|
1179 |
dij.processedMap(*reinterpret_cast<ProcessedMap*>(Base::_processed)); |
|
1180 |
if(Base::_pred) |
|
1181 |
dij.predMap(*reinterpret_cast<PredMap*>(Base::_pred)); |
|
1182 |
if(Base::_dist) |
|
1183 |
dij.distMap(*reinterpret_cast<DistMap*>(Base::_dist)); |
|
1178 | 1184 |
dij.run(Base::_source); |
1179 | 1185 |
} |
1180 | 1186 |
|
1181 | 1187 |
///Runs Dijkstra algorithm from the given node. |
0 comments (0 inline)