Changeset 2335:27aa03cd3121 in lemon0.x for lemon/johnson.h
 Timestamp:
 01/08/07 11:39:59 (13 years ago)
 Branch:
 default
 Phase:
 public
 Convert:
 svn:c9d7d8f590d60310b91f818b3a526b0e/lemon/trunk@3123
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

lemon/johnson.h
r2263 r2335 29 29 #include <lemon/dijkstra.h> 30 30 #include <lemon/bellman_ford.h> 31 #include <lemon/bits/path_dump.h> 31 32 #include <lemon/bits/invalid.h> 32 33 #include <lemon/error.h> … … 630 631 ///@{ 631 632 632 /// \brief Copies the shortest path to \c t into \c p 633 /// 634 /// This function copies the shortest path to \c t into \c p. 635 /// If it \c t is a source itself or unreachable, then it does not 636 /// alter \c p. 637 /// \return Returns \c true if a path to \c t was actually copied to \c p, 638 /// \c false otherwise. 639 /// \sa DirPath 640 template <typename Path> 641 bool getPath(Path &p, Node source, Node target) { 642 if (connected(source, target)) { 643 p.clear(); 644 typename Path::Builder b(target); 645 for(b.setStartNode(target); predEdge(source, target) != INVALID; 646 target = predNode(target)) { 647 b.pushFront(predEdge(source, target)); 648 } 649 b.commit(); 650 return true; 651 } 652 return false; 633 typedef PredMatrixMapPath<Graph, PredMap> Path; 634 635 ///Gives back the shortest path. 636 637 ///Gives back the shortest path. 638 ///\pre The \c t should be reachable from the \c t. 639 Path path(Node s, Node t) 640 { 641 return Path(*graph, *_pred, s, t); 653 642 } 654 643
Note: See TracChangeset
for help on using the changeset viewer.