# Changes in /[287:bb40b6db0a58:285:d8dc5acf739b] in lemon

Ignore:
Files:
6 edited

Unmodified
Removed
• ## lemon/bfs.h

 r287 /// ///This method runs the %BFS algorithm from the root node(s) ///in order to compute the shortest path to \c t. ///in order to compute the shortest path to \c dest. /// ///The algorithm computes ///- the shortest path to \c t, ///- the distance of \c t from the root(s). ///- the shortest path to \c dest, ///- the distance of \c dest from the root(s). /// ///\pre init() must be called and at least one root node should be ///  } ///\endcode void start(Node t) void start(Node dest) { bool reach = false; while ( !emptyQueue() && !reach ) processNextNode(t, reach); while ( !emptyQueue() && !reach ) processNextNode(dest, reach); } } ///Runs the algorithm from the given source node. ///Runs the algorithm from the given node. ///This method runs the %BFS algorithm from node \c s ///This method runs the %BFS algorithm from node \c s ///in order to compute the shortest path to node \c t ///(it stops searching when \c t is processed). /// ///\return \c true if \c t is reachable form \c s. ///in order to compute the shortest path to \c t. /// ///\return The length of the shortest s--t path, ///if \c t is reachable form \c s, \c 0 otherwise. /// ///\note Apart from the return value, b.run(s,t) is just a ///  b.start(t); ///\endcode bool run(Node s,Node t) { int run(Node s,Node t) { init(); addSource(s); start(t); return reached(t); return reached(t) ? _curr_dist : 0; } /// /// This method runs the %BFS algorithm from the root node(s) /// in order to compute the shortest path to \c t. /// in order to compute the shortest path to \c dest. /// /// The algorithm computes /// - the shortest path to \c t, /// - the distance of \c t from the root(s). /// - the shortest path to \c dest, /// - the distance of \c dest from the root(s). /// /// \pre init() must be called and at least one root node should be ///   } /// \endcode void start(Node t) { void start(Node dest) { bool reach = false; while ( !emptyQueue() && !reach ) processNextNode(t, reach); while ( !emptyQueue() && !reach ) processNextNode(dest, reach); } } /// \brief Runs the algorithm from the given source node. /// \brief Runs the algorithm from the given node. /// /// This method runs the %BFS algorithm from node \c s addSource(s); start(); } /// \brief Finds the shortest path between \c s and \c t. /// /// This method runs the %BFS algorithm from node \c s /// in order to compute the shortest path to node \c t /// (it stops searching when \c t is processed). /// /// \return \c true if \c t is reachable form \c s. /// /// \note Apart from the return value, b.run(s,t) is just a /// shortcut of the following code. ///\code ///   b.init(); ///   b.addSource(s); ///   b.start(t); ///\endcode bool run(Node s,Node t) { init(); addSource(s); start(t); return reached(t); }