# HG changeset patch
# User Peter Kovacs
# Date 1518907455 -3600
# Sat Feb 17 23:44:15 2018 +0100
# Node ID ba6afb21b6fd147e765de15c3b197f40cd608afb
# Parent 15d7c5eadacadbf50145095312677c6837327282
API doc improvements for Path structures (#250)
diff --git a/lemon/path.h b/lemon/path.h
--- a/lemon/path.h
+++ b/lemon/path.h
@@ -42,10 +42,10 @@
/// A structure for representing directed path in a digraph.
/// \tparam GR The digraph type in which the path is.
///
- /// In a sense, the path can be treated as a list of arcs. The
- /// LEMON path type stores just this list. As a consequence, it
- /// cannot enumerate the nodes of the path and the source node of
- /// a zero length path is undefined.
+ /// In a sense, a path can be treated as a list of arcs. The
+ /// LEMON path type simply stores this list. As a consequence, it
+ /// cannot enumerate the nodes in the path, and the source node of
+ /// a zero-length path is undefined.
///
/// This implementation is a back and front insertable and erasable
/// path type. It can be indexed in O(1) time. The front and back
@@ -150,7 +150,8 @@
/// \brief The n-th arc.
///
- /// \pre \c n is in the `[0..length() - 1]` range.
+ /// Gives back the n-th arc. This function runs in O(1) time.
+ /// \pre \c n is in the range `[0..length() - 1]`.
const Arc& nth(int n) const {
return n < int(head.size()) ? *(head.rbegin() + n) :
*(tail.begin() + (n - head.size()));
@@ -243,15 +244,15 @@
/// A structure for representing directed path in a digraph.
/// \tparam GR The digraph type in which the path is.
///
- /// In a sense, the path can be treated as a list of arcs. The
- /// LEMON path type stores just this list. As a consequence it
- /// cannot enumerate the nodes in the path and the zero length paths
- /// cannot store the source.
+ /// In a sense, a path can be treated as a list of arcs. The
+ /// LEMON path type simply stores this list. As a consequence, it
+ /// cannot enumerate the nodes in the path, and the source node of
+ /// a zero-length path is undefined.
///
/// This implementation is a just back insertable and erasable path
/// type. It can be indexed in O(1) time. The back insertion and
/// erasure is amortized O(1) time. This implementation is faster
- /// then the \c Path type because it use just one vector for the
+ /// than the \c Path type because it use just one vector for the
/// arcs.
template
class SimplePath {
@@ -355,7 +356,8 @@
/// \brief The n-th arc.
///
- /// \pre \c n is in the `[0..length() - 1]` range.
+ /// Gives back the n-th arc. This function runs in O(1) time.
+ /// \pre \c n is in the range `[0..length() - 1]`.
const Arc& nth(int n) const {
return data[n];
}
@@ -420,10 +422,10 @@
/// A structure for representing directed path in a digraph.
/// \tparam GR The digraph type in which the path is.
///
- /// In a sense, the path can be treated as a list of arcs. The
- /// LEMON path type stores just this list. As a consequence it
- /// cannot enumerate the nodes in the path and the zero length paths
- /// cannot store the source.
+ /// In a sense, a path can be treated as a list of arcs. The
+ /// LEMON path type simply stores this list. As a consequence, it
+ /// cannot enumerate the nodes in the path, and the source node of
+ /// a zero-length path is undefined.
///
/// This implementation is a back and front insertable and erasable
/// path type. It can be indexed in O(k) time, where k is the rank
@@ -546,7 +548,7 @@
/// \brief The n-th arc.
///
/// This function looks for the n-th arc in O(n) time.
- /// \pre \c n is in the `[0..length() - 1]` range.
+ /// \pre \c n is in the range `[0..length() - 1]`.
const Arc& nth(int n) const {
Node *node = first;
for (int i = 0; i < n; ++i) {
@@ -732,7 +734,7 @@
/// starting with
/// \c it will put into \c tpath. If \c tpath have arcs
/// before the operation they are removed first. The time
- /// complexity of this function is O(1) plus the the time of emtying
+ /// complexity of this function is O(1) plus the time of emtying
/// \c tpath. If \c it is \c INVALID then it just clears \c tpath
void split(ArcIt it, ListPath& tpath) {
tpath.clear();
@@ -773,18 +775,17 @@
/// A structure for representing directed path in a digraph.
/// \tparam GR The digraph type in which the path is.
///
- /// In a sense, the path can be treated as a list of arcs. The
- /// LEMON path type stores just this list. As a consequence it
- /// cannot enumerate the nodes in the path and the source node of
- /// a zero length path is undefined.
+ /// In a sense, a path can be treated as a list of arcs. The
+ /// LEMON path type simply stores this list. As a consequence, it
+ /// cannot enumerate the nodes in the path, and the source node of
+ /// a zero-length path is undefined.
///
/// This implementation is completly static, i.e. it can be copy constucted
/// or copy assigned from another path, but otherwise it cannot be
/// modified.
///
- /// Being the the most memory efficient path type in LEMON,
- /// it is intented to be
- /// used when you want to store a large number of paths.
+ /// Being the most memory-efficient path type in LEMON, it is
+ /// intented to be used when you want to store a large number of paths.
template
class StaticPath {
public:
@@ -885,7 +886,8 @@
/// \brief The n-th arc.
///
- /// \pre \c n is in the `[0..length() - 1]` range.
+ /// Gives back the n-th arc. This function runs in O(1) time.
+ /// \pre \c n is in the range `[0..length() - 1]`.
const Arc& nth(int n) const {
return arcs[n];
}
@@ -901,7 +903,7 @@
/// \brief Return true when the path is empty.
int empty() const { return len == 0; }
- /// \brief Erase all arcs in the digraph.
+ /// \brief Reset the path to an empty one.
void clear() {
len = 0;
if (arcs) delete[] arcs;
@@ -1091,15 +1093,17 @@
return path.empty() ? INVALID : digraph.target(path.back());
}
- /// \brief Class which helps to iterate through the nodes of a path
+ /// \brief Class for iterating through the nodes of a path
+ ///
+ /// Class for iterating through the nodes of a path.
///
- /// In a sense, the path can be treated as a list of arcs. The
- /// LEMON path type stores only this list. As a consequence, it
- /// cannot enumerate the nodes in the path and the zero length paths
- /// cannot have a source node.
+ /// In a sense, a path can be treated as a list of arcs. The
+ /// LEMON path type simply stores this list. As a consequence, it
+ /// cannot enumerate the nodes in the path, and the source node of
+ /// a zero-length path is undefined.
///
- /// This class implements the node iterator of a path structure. To
- /// provide this feature, the underlying digraph should be passed to
+ /// However, this class implements a node iterator for path structures.
+ /// To provide this feature, the underlying digraph should be passed to
/// the constructor of the iterator.
template
class PathNodeIt {