ListUGraph Class Reference
[Graph Structures]


Detailed Description

This is a simple and fast undirected graph implementation.

An important extra feature of this graph implementation is that its maps are real reference maps.

It conforms to the UGraph concept.

See also:
concepts::UGraph.
#include <lemon/list_graph.h>

Inheritance diagram for ListUGraph:

Inheritance graph
[legend]

List of all members.

Classes

class  Snapshot
 Class to make a snapshot of the graph and restore to it later. More...

Public Member Functions

 ListUGraph ()
Node addNode ()
 Add a new node to the graph.
UEdge addEdge (const Node &s, const Node &t)
 Add a new edge to the graph.
void changeSource (UEdge e, Node n)
 Changes the source of e to n.
void changeTarget (UEdge e, Node n)
 Changes the target of e to n.
void changeSource (Edge e, Node n)
 Changes the source of e to n.
void changeTarget (Edge e, Node n)
 Changes the target of e to n.
void contract (Node a, Node b, bool r=true)
 Contract two nodes.

Private Member Functions

 ListUGraph (const ListUGraph &)
void operator= (const ListUGraph &)


Constructor & Destructor Documentation

ListUGraph ( const ListUGraph  )  [inline, private]

ListUGraph is not copy constructible. Use UGraphCopy() instead.

ListUGraph (  )  [inline]

Constructor.


Member Function Documentation

void operator= ( const ListUGraph  )  [inline, private]

Assignment of ListUGraph to another one is not allowed. Use UGraphCopy() instead.

Node addNode (  )  [inline]

Returns:
the new node.

Reimplemented from UGraphExtender< ListUGraphBase >.

UEdge addEdge ( const Node &  s,
const Node &  t 
) [inline]

Add a new edge to the graph with source node s and target node t.

Returns:
the new undirected edge.

Reimplemented from UGraphExtender< ListUGraphBase >.

void changeSource ( UEdge  e,
Node  n 
) [inline]

Changes the source of e to n

Note:
The EdgeIts and InEdgeIts referencing the changed edge remain valid. However OutEdgeIts are invalidated.

void changeTarget ( UEdge  e,
Node  n 
) [inline]

Changes the target of e to n

Note:
The EdgeIts referencing the changed edge remain valid. However the other iterators may be invalidated.

void changeSource ( Edge  e,
Node  n 
) [inline]

Changes the source of e to n. It changes the proper node of the represented undirected edge.

Note:
The EdgeIts and InEdgeIts referencing the changed edge remain valid. However OutEdgeIts are invalidated.

void changeTarget ( Edge  e,
Node  n 
) [inline]

Changes the target of e to n. It changes the proper node of the represented undirected edge.

Note:
The EdgeIts and OutEdgeIts referencing the changed edge remain valid. However InEdgeIts are invalidated.

void contract ( Node  a,
Node  b,
bool  r = true 
) [inline]

This function contracts two nodes.

Node b will be removed but instead of deleting its neighboring edges, they will be joined to a. The last parameter r controls whether to remove loops. true means that loops will be removed.

Note:
The EdgeIts referencing a moved edge remain valid.


Generated on Thu Jun 4 04:05:17 2009 for LEMON by  doxygen 1.5.9