COIN-OR::LEMON - Graph Library

Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • lemon/concepts/path.h

    r832 r606  
    1919///\ingroup concept
    2020///\file
    21 ///\brief The concept of paths
     21///\brief Classes for representing paths in digraphs.
    2222///
    2323
     
    3939    /// A skeleton structure for representing directed paths in a
    4040    /// digraph.
    41     /// In a sense, a path can be treated as a list of arcs.
    42     /// LEMON path types just store this list. As a consequence, they cannot
    43     /// enumerate the nodes on the path directly and a zero length path
    44     /// cannot store its source node.
    45     ///
    46     /// The arcs of a path should be stored in the order of their directions,
    47     /// i.e. the target node of each arc should be the same as the source
    48     /// node of the next arc. This consistency could be checked using
    49     /// \ref checkPath().
    50     /// The source and target nodes of a (consistent) path can be obtained
    51     /// using \ref pathSource() and \ref pathTarget().
    52     ///
    53     /// A path can be constructed from another path of any type using the
    54     /// copy constructor or the assignment operator.
    55     ///
    5641    /// \tparam GR The digraph type in which the path is.
     42    ///
     43    /// In a sense, the path can be treated as a list of arcs. The
     44    /// lemon path type stores just this list. As a consequence it
     45    /// cannot enumerate the nodes in the path and the zero length
     46    /// paths cannot store the source.
     47    ///
    5748    template <typename GR>
    5849    class Path {
     
    6960      Path() {}
    7061
    71       /// \brief Template copy constructor
     62      /// \brief Template constructor
    7263      template <typename CPath>
    7364      Path(const CPath& cpath) {}
    7465
    75       /// \brief Template assigment operator
     66      /// \brief Template assigment
    7667      template <typename CPath>
    7768      Path& operator=(const CPath& cpath) {
     
    8071      }
    8172
    82       /// Length of the path, i.e. the number of arcs on the path.
     73      /// Length of the path ie. the number of arcs in the path.
    8374      int length() const { return 0;}
    8475
     
    8980      void clear() {}
    9081
    91       /// \brief LEMON style iterator for enumerating the arcs of a path.
     82      /// \brief LEMON style iterator for path arcs
    9283      ///
    93       /// LEMON style iterator class for enumerating the arcs of a path.
     84      /// This class is used to iterate on the arcs of the paths.
    9485      class ArcIt {
    9586      public:
     
    9889        /// Invalid constructor
    9990        ArcIt(Invalid) {}
    100         /// Sets the iterator to the first arc of the given path
     91        /// Constructor for first arc
    10192        ArcIt(const Path &) {}
    10293
    103         /// Conversion to \c Arc
     94        /// Conversion to Arc
    10495        operator Arc() const { return INVALID; }
    10596
     
    202193    ///
    203194    /// A skeleton structure for path dumpers. The path dumpers are
    204     /// the generalization of the paths, they can enumerate the arcs
    205     /// of the path either in forward or in backward order.
    206     /// These classes are typically not used directly, they are rather
    207     /// used to be assigned to a real path type.
     195    /// the generalization of the paths. The path dumpers can
     196    /// enumerate the arcs of the path wheter in forward or in
     197    /// backward order.  In most time these classes are not used
     198    /// directly rather it used to assign a dumped class to a real
     199    /// path type.
    208200    ///
    209201    /// The main purpose of this concept is that the shortest path
    210     /// algorithms can enumerate the arcs easily in reverse order.
    211     /// In LEMON, such algorithms give back a (reverse) path dumper that
    212     /// can be assigned to a real path. The dumpers can be implemented as
     202    /// algorithms can enumerate easily the arcs in reverse order.
     203    /// If we would like to give back a real path from these
     204    /// algorithms then we should create a temporarly path object. In
     205    /// LEMON such algorithms gives back a path dumper what can
     206    /// assigned to a real path and the dumpers can be implemented as
    213207    /// an adaptor class to the predecessor map.
    214208    ///
    215209    /// \tparam GR The digraph type in which the path is.
     210    ///
     211    /// The paths can be constructed from any path type by a
     212    /// template constructor or a template assignment operator.
    216213    template <typename GR>
    217214    class PathDumper {
     
    223220      typedef typename Digraph::Arc Arc;
    224221
    225       /// Length of the path, i.e. the number of arcs on the path.
     222      /// Length of the path ie. the number of arcs in the path.
    226223      int length() const { return 0;}
    227224
     
    231228      /// \brief Forward or reverse dumping
    232229      ///
    233       /// If this tag is defined to be \c True, then reverse dumping
    234       /// is provided in the path dumper. In this case, \c RevArcIt
    235       /// iterator should be implemented instead of \c ArcIt iterator.
     230      /// If the RevPathTag is defined and true then reverse dumping
     231      /// is provided in the path dumper. In this case instead of the
     232      /// ArcIt the RevArcIt iterator should be implemented in the
     233      /// dumper.
    236234      typedef False RevPathTag;
    237235
    238       /// \brief LEMON style iterator for enumerating the arcs of a path.
     236      /// \brief LEMON style iterator for path arcs
    239237      ///
    240       /// LEMON style iterator class for enumerating the arcs of a path.
     238      /// This class is used to iterate on the arcs of the paths.
    241239      class ArcIt {
    242240      public:
     
    245243        /// Invalid constructor
    246244        ArcIt(Invalid) {}
    247         /// Sets the iterator to the first arc of the given path
     245        /// Constructor for first arc
    248246        ArcIt(const PathDumper&) {}
    249247
    250         /// Conversion to \c Arc
     248        /// Conversion to Arc
    251249        operator Arc() const { return INVALID; }
    252250
     
    263261      };
    264262
    265       /// \brief LEMON style iterator for enumerating the arcs of a path
    266       /// in reverse direction.
     263      /// \brief LEMON style iterator for path arcs
    267264      ///
    268       /// LEMON style iterator class for enumerating the arcs of a path
    269       /// in reverse direction.
     265      /// This class is used to iterate on the arcs of the paths in
     266      /// reverse direction.
    270267      class RevArcIt {
    271268      public:
     
    274271        /// Invalid constructor
    275272        RevArcIt(Invalid) {}
    276         /// Sets the iterator to the last arc of the given path
     273        /// Constructor for first arc
    277274        RevArcIt(const PathDumper &) {}
    278275
    279         /// Conversion to \c Arc
     276        /// Conversion to Arc
    280277        operator Arc() const { return INVALID; }
    281278
Note: See TracChangeset for help on using the changeset viewer.