Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

UndirGraph Class Reference
[Graph Structure Concepts]

#include <lemon/concept/undir_graph.h>

Inherited by ExtendableUndirGraph.

Inheritance diagram for UndirGraph:

Inheritance graph
[legend]
List of all members.

Detailed Description

This class describes the common interface of all Undirected Graphs.

As all concept describing classes it provides only interface without any sensible implementation. So any algorithm for undirected graph should compile with this class, but it will not run properly, of couse.

In LEMON undirected graphs also fulfill the concept of directed graphs (Graph Concept). For explanation of this and more see also the page Undirected graph structures, a tutorial about undirected graphs.

You can assume that all undirected graph can be handled as a static directed graph. This way it is fully conform to the StaticGraph concept.


Public Types

typedef True UndirTag
 

Public Member Functions

Edge direct (const UndirEdge &, const Node &) const
 Direct the given undirected edge.
Edge direct (const UndirEdge &, bool) const
 Direct the given undirected edge.
bool direction (Edge) const
 Returns true if the edge has default orientation.
Edge oppositeEdge (Edge) const
 Returns the opposite directed edge.
Node oppositeNode (Node, UndirEdge) const
 Opposite node on an edge.
Node source (UndirEdge) const
 First node of the undirected edge.
Node target (UndirEdge) const
 Second node of the undirected edge.
Node source (Edge) const
 Source node of the directed edge.
Node target (Edge) const
 Target node of the directed edge.
Node baseNode (OutEdgeIt e) const
 Base node of the iterator.
Node runningNode (OutEdgeIt e) const
 Running node of the iterator.
Node baseNode (InEdgeIt e) const
 Base node of the iterator.
Node runningNode (InEdgeIt e) const
 Running node of the iterator.
Node baseNode (IncEdgeIt) const
 Base node of the iterator.
Node runningNode (IncEdgeIt) const
 Running node of the iterator.

Classes

class  Edge
 The directed edge type. More...
class  EdgeIt
 This iterator goes through each directed edge. More...
class  EdgeMap
 Read write map of the directed edges to type T. More...
class  IncEdgeIt
 This iterator goes trough the incident undirected edges of a node. More...
class  InEdgeIt
 This iterator goes trough the incoming directed edges of a node. More...
class  Node
class  NodeIt
 This iterator goes through each node. More...
class  NodeMap
 Read write map of the nodes to type T. More...
class  OutEdgeIt
 This iterator goes trough the outgoing directed edges of a node. More...
class  UndirEdge
 The base type of the undirected edge iterators. More...
class  UndirEdgeIt
 This iterator goes through each undirected edge. More...
class  UndirEdgeMap
 Read write map of the undirected edges to type T. More...


Member Typedef Documentation

typedef True UndirTag
 

Todo:
undocumented


Member Function Documentation

Edge direct const UndirEdge ,
const Node
const [inline]
 

Direct the given undirected edge. The returned edge source will be the given edge.

Edge direct const UndirEdge ,
bool 
const [inline]
 

Direct the given undirected edge. The returned edge source will be the source of the undirected edge if the given bool is true.

bool direction Edge   )  const [inline]
 

Returns whether the given directed edge is same orientation as the corresponding undirected edge.

Edge oppositeEdge Edge   )  const [inline]
 

Returns the opposite directed edge.

Node oppositeNode Node  ,
UndirEdge 
const [inline]
 

Returns:
the opposite of the given Node on the given Edge

Node source UndirEdge   )  const [inline]
 

Returns:
the first node of the given UndirEdge.
Naturally undirectected edges don't have direction and thus don't have source and target node. But we use these two methods to query the two endnodes of the edge. The direction of the edge which arises this way is called the inherent direction of the undirected edge, and is used to define the "default" direction of the directed versions of the edges.
See also:
direction

Node baseNode OutEdgeIt  e  )  const [inline]
 

Returns the base node (the source in this case) of the iterator

Node runningNode OutEdgeIt  e  )  const [inline]
 

Returns the running node (the target in this case) of the iterator

Node baseNode InEdgeIt  e  )  const [inline]
 

Returns the base node (the target in this case) of the iterator

Node runningNode InEdgeIt  e  )  const [inline]
 

Returns the running node (the source in this case) of the iterator

Node baseNode IncEdgeIt   )  const [inline]
 

Returns the base node of the iterator

Node runningNode IncEdgeIt   )  const [inline]
 

Returns the running node of the iterator


The documentation for this class was generated from the following file:
Generated on Sat Aug 27 14:16:59 2005 for LEMON by  doxygen 1.4.4