Changeset 258:0310c8984732 in lemon for lemon/dfs.h
 Timestamp:
 09/09/08 21:52:45 (12 years ago)
 Branch:
 default
 Parents:
 257:8d76a7bf9961 (diff), 256:c760d691fe3c (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.  Phase:
 public
 Files:

 2 edited
Legend:
 Unmodified
 Added
 Removed

lemon/dfs.h
r252 r258 231 231 232 232 template <class T> 233 struct DefPredMapTraits : public Traits {233 struct SetPredMapTraits : public Traits { 234 234 typedef T PredMap; 235 235 static PredMap *createPredMap(const Digraph &) … … 244 244 ///\ref PredMap type. 245 245 template <class T> 246 struct DefPredMap : public Dfs<Digraph, DefPredMapTraits<T> > {247 typedef Dfs<Digraph, DefPredMapTraits<T> > Create;246 struct SetPredMap : public Dfs<Digraph, SetPredMapTraits<T> > { 247 typedef Dfs<Digraph, SetPredMapTraits<T> > Create; 248 248 }; 249 249 250 250 template <class T> 251 struct DefDistMapTraits : public Traits {251 struct SetDistMapTraits : public Traits { 252 252 typedef T DistMap; 253 253 static DistMap *createDistMap(const Digraph &) … … 262 262 ///\ref DistMap type. 263 263 template <class T> 264 struct DefDistMap : public Dfs< Digraph, DefDistMapTraits<T> > {265 typedef Dfs<Digraph, DefDistMapTraits<T> > Create;264 struct SetDistMap : public Dfs< Digraph, SetDistMapTraits<T> > { 265 typedef Dfs<Digraph, SetDistMapTraits<T> > Create; 266 266 }; 267 267 268 268 template <class T> 269 struct DefReachedMapTraits : public Traits {269 struct SetReachedMapTraits : public Traits { 270 270 typedef T ReachedMap; 271 271 static ReachedMap *createReachedMap(const Digraph &) … … 280 280 ///\ref ReachedMap type. 281 281 template <class T> 282 struct DefReachedMap : public Dfs< Digraph, DefReachedMapTraits<T> > {283 typedef Dfs< Digraph, DefReachedMapTraits<T> > Create;282 struct SetReachedMap : public Dfs< Digraph, SetReachedMapTraits<T> > { 283 typedef Dfs< Digraph, SetReachedMapTraits<T> > Create; 284 284 }; 285 285 286 286 template <class T> 287 struct DefProcessedMapTraits : public Traits {287 struct SetProcessedMapTraits : public Traits { 288 288 typedef T ProcessedMap; 289 289 static ProcessedMap *createProcessedMap(const Digraph &) … … 298 298 ///\ref ProcessedMap type. 299 299 template <class T> 300 struct DefProcessedMap : public Dfs< Digraph, DefProcessedMapTraits<T> > {301 typedef Dfs< Digraph, DefProcessedMapTraits<T> > Create;302 }; 303 304 struct DefDigraphProcessedMapTraits : public Traits {300 struct SetProcessedMap : public Dfs< Digraph, SetProcessedMapTraits<T> > { 301 typedef Dfs< Digraph, SetProcessedMapTraits<T> > Create; 302 }; 303 304 struct SetStandardProcessedMapTraits : public Traits { 305 305 typedef typename Digraph::template NodeMap<bool> ProcessedMap; 306 306 static ProcessedMap *createProcessedMap(const Digraph &g) … … 315 315 ///\ref ProcessedMap type to be <tt>Digraph::NodeMap<bool></tt>. 316 316 ///If you don't set it explicitly, it will be automatically allocated. 317 template <class T> 318 struct DefProcessedMapToBeDefaultMap : 319 public Dfs< Digraph, DefDigraphProcessedMapTraits> { 320 typedef Dfs< Digraph, DefDigraphProcessedMapTraits> Create; 317 struct SetStandardProcessedMap : 318 public Dfs< Digraph, SetStandardProcessedMapTraits > { 319 typedef Dfs< Digraph, SetStandardProcessedMapTraits > Create; 321 320 }; 322 321 … … 1001 1000 1002 1001 template<class T> 1003 struct DefPredMapBase : public Base {1002 struct SetPredMapBase : public Base { 1004 1003 typedef T PredMap; 1005 1004 static PredMap *createPredMap(const Digraph &) { return 0; }; 1006 DefPredMapBase(const TR &b) : TR(b) {}1005 SetPredMapBase(const TR &b) : TR(b) {} 1007 1006 }; 1008 1007 ///\brief \ref namedtemplparam "Named parameter" … … 1012 1011 ///for setting \ref PredMap object. 1013 1012 template<class T> 1014 DfsWizard< DefPredMapBase<T> > predMap(const T &t)1013 DfsWizard<SetPredMapBase<T> > predMap(const T &t) 1015 1014 { 1016 1015 Base::_pred=reinterpret_cast<void*>(const_cast<T*>(&t)); 1017 return DfsWizard< DefPredMapBase<T> >(*this);1016 return DfsWizard<SetPredMapBase<T> >(*this); 1018 1017 } 1019 1018 1020 1019 template<class T> 1021 struct DefReachedMapBase : public Base {1020 struct SetReachedMapBase : public Base { 1022 1021 typedef T ReachedMap; 1023 1022 static ReachedMap *createReachedMap(const Digraph &) { return 0; }; 1024 DefReachedMapBase(const TR &b) : TR(b) {}1023 SetReachedMapBase(const TR &b) : TR(b) {} 1025 1024 }; 1026 1025 ///\brief \ref namedtemplparam "Named parameter" … … 1030 1029 ///for setting \ref ReachedMap object. 1031 1030 template<class T> 1032 DfsWizard< DefReachedMapBase<T> > reachedMap(const T &t)1031 DfsWizard<SetReachedMapBase<T> > reachedMap(const T &t) 1033 1032 { 1034 1033 Base::_reached=reinterpret_cast<void*>(const_cast<T*>(&t)); 1035 return DfsWizard< DefReachedMapBase<T> >(*this);1034 return DfsWizard<SetReachedMapBase<T> >(*this); 1036 1035 } 1037 1036 1038 1037 template<class T> 1039 struct DefProcessedMapBase : public Base {1038 struct SetProcessedMapBase : public Base { 1040 1039 typedef T ProcessedMap; 1041 1040 static ProcessedMap *createProcessedMap(const Digraph &) { return 0; }; 1042 DefProcessedMapBase(const TR &b) : TR(b) {}1041 SetProcessedMapBase(const TR &b) : TR(b) {} 1043 1042 }; 1044 1043 ///\brief \ref namedtemplparam "Named parameter" … … 1048 1047 ///for setting \ref ProcessedMap object. 1049 1048 template<class T> 1050 DfsWizard< DefProcessedMapBase<T> > processedMap(const T &t)1049 DfsWizard<SetProcessedMapBase<T> > processedMap(const T &t) 1051 1050 { 1052 1051 Base::_processed=reinterpret_cast<void*>(const_cast<T*>(&t)); 1053 return DfsWizard< DefProcessedMapBase<T> >(*this);1052 return DfsWizard<SetProcessedMapBase<T> >(*this); 1054 1053 } 1055 1054 1056 1055 template<class T> 1057 struct DefDistMapBase : public Base {1056 struct SetDistMapBase : public Base { 1058 1057 typedef T DistMap; 1059 1058 static DistMap *createDistMap(const Digraph &) { return 0; }; 1060 DefDistMapBase(const TR &b) : TR(b) {}1059 SetDistMapBase(const TR &b) : TR(b) {} 1061 1060 }; 1062 1061 ///\brief \ref namedtemplparam "Named parameter" … … 1066 1065 ///for setting \ref DistMap object. 1067 1066 template<class T> 1068 DfsWizard< DefDistMapBase<T> > distMap(const T &t)1067 DfsWizard<SetDistMapBase<T> > distMap(const T &t) 1069 1068 { 1070 1069 Base::_dist=reinterpret_cast<void*>(const_cast<T*>(&t)); 1071 return DfsWizard< DefDistMapBase<T> >(*this);1070 return DfsWizard<SetDistMapBase<T> >(*this); 1072 1071 } 1073 1072 … … 1302 1301 ///@{ 1303 1302 template <class T> 1304 struct DefReachedMapTraits : public Traits {1303 struct SetReachedMapTraits : public Traits { 1305 1304 typedef T ReachedMap; 1306 1305 static ReachedMap *createReachedMap(const Digraph &digraph) { … … 1313 1312 /// \ref namedtemplparam "Named parameter" for setting ReachedMap type. 1314 1313 template <class T> 1315 struct DefReachedMap : public DfsVisit< Digraph, Visitor,1316 DefReachedMapTraits<T> > {1317 typedef DfsVisit< Digraph, Visitor, DefReachedMapTraits<T> > Create;1314 struct SetReachedMap : public DfsVisit< Digraph, Visitor, 1315 SetReachedMapTraits<T> > { 1316 typedef DfsVisit< Digraph, Visitor, SetReachedMapTraits<T> > Create; 1318 1317 }; 1319 1318 ///@} 
lemon/dfs.h
r257 r258 1209 1209 /// the member functions of the \c Visitor class on every DFS event. 1210 1210 /// 1211 /// This interface of the DFS algorithm should be used in special cases 1212 /// when extra actions have to be performed in connection with certain 1213 /// events of the DFS algorithm. Otherwise consider to use Dfs or dfs() 1214 /// instead. 1215 /// 1211 1216 /// \tparam _Digraph The type of the digraph the algorithm runs on. 1212 1217 /// The default value is
Note: See TracChangeset
for help on using the changeset viewer.