UndirPath Class Template Reference
[Path Structures]

#include <path.h>

List of all members.


Detailed Description

template<typename Graph>
class lemon::UndirPath< Graph >

A structure for representing undirected path in a graph. Ie. this is a path in a directed graph but the edges should not be directed forward.

Parameters:
Graph The graph type in which the path is.
DM DebugMode, defaults to DefaultDebugMode.
In a sense, the path can be treated as a graph, for is has NodeIt and EdgeIt with the same usage. These types converts to the Node and Edge of the original graph.

Todo:
Thoroughfully check all the range and consistency tests.

Definition at line 390 of file path.h.

Public Types

typedef Graph::Edge GraphEdge
 Edge type of the underlying graph.
typedef Graph::Node GraphNode
 Node type of the underlying graph.

Public Member Functions

 UndirPath (const Graph &_G)
 UndirPath (const UndirPath &P, const NodeIt &a, const NodeIt &b)
 Subpath constructor.
 UndirPath (const UndirPath &P, const EdgeIt &a, const EdgeIt &b)
 Subpath constructor.
size_t length () const
 Length of the path.
bool empty () const
 Returns whether the path is empty.
void clear ()
 Resets the path to an empty path.
GraphNode tail () const
 Starting point of the path.
GraphNode head () const
 End point of the path.
template<typename It> It & first (It &i) const
 Initializes node or edge iterator to point to the first node or edge.
NodeItnth (NodeIt &i, int n) const
 Initializes node iterator to point to the node of a given index.
EdgeItnth (EdgeIt &i, int n) const
 Initializes edge iterator to point to the edge of a given index.
NodeIt head (const EdgeIt &e) const
 Returns node iterator pointing to the head node of the given edge iterator.
NodeIt tail (const EdgeIt &e) const
 Returns node iterator pointing to the tail node of the given edge iterator.

Static Public Member Functions

template<typename It> bool valid (const It &i)
 Checks validity of a node or edge iterator.
template<typename It> It & next (It &e)
 Steps the given node or edge iterator.


Constructor & Destructor Documentation

UndirPath const Graph &  _G  )  [inline]
 

Parameters:
_G The graph in which the path is.
Definition at line 408 of file path.h.

UndirPath const UndirPath< Graph > &  P,
const NodeIt a,
const NodeIt b
[inline]
 

Subpath defined by two nodes.

Warning:
It is an error if the two edges are not in order!
Definition at line 414 of file path.h.

References UndirPath::edges, UndirPath::gr, and UndirPath::NodeIt::idx.

UndirPath const UndirPath< Graph > &  P,
const EdgeIt a,
const EdgeIt b
[inline]
 

Subpath defined by two edges. Contains edges in [a,b)

Warning:
It is an error if the two edges are not in order!
Definition at line 423 of file path.h.

References UndirPath::edges, UndirPath::gr, and UndirPath::EdgeIt::idx.


Member Function Documentation

GraphNode tail  )  const [inline]
 

Starting point of the path. Returns INVALID if the path is empty. Definition at line 440 of file path.h.

References UndirPath::empty(), UndirPath::GraphNode, and lemon::INVALID.

Here is the call graph for this function:

GraphNode head  )  const [inline]
 

End point of the path. Returns INVALID if the path is empty. Definition at line 447 of file path.h.

References UndirPath::empty(), UndirPath::GraphNode, lemon::INVALID, and UndirPath::length().

Here is the call graph for this function:

It& first It &  i  )  const [inline]
 

See also:
nth
Definition at line 456 of file path.h.


The documentation for this class was generated from the following file:
Generated on Thu Sep 30 12:18:39 2004 for LEMON by doxygen 1.3.8