ListBpUGraph Class Reference
[Graph Structures]


Detailed Description

This is a bipartite undirected graph implementation. It is conforms to the BpUGraph concept.

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

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

Inheritance diagram for ListBpUGraph:

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

 ListBpUGraph ()
Node addANode ()
 Add a new ANode to the graph.
Node addBNode ()
 Add a new BNode to the graph.
UEdge addEdge (const Node &s, const Node &t)
 Add a new edge to the graph.
void changeANode (UEdge e, Node n)
 Changes the ANode of e to n.
void changeBNode (UEdge e, Node n)
 Changes the BNode of e to n.
void changeSource (UEdge e, Node n)
 Changes the source(ANode) of e to n.
void changeTarget (UEdge e, Node n)
 Changes the target(BNode) 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 (const Node &a, const Node &b)
 Contract two nodes.

Private Member Functions

 ListBpUGraph (const ListBpUGraph &)
void operator= (const ListBpUGraph &)


Constructor & Destructor Documentation

ListBpUGraph ( const ListBpUGraph  )  [inline, private]

ListBpUGraph is not copy constructible.

ListBpUGraph (  )  [inline]

Constructor.


Member Function Documentation

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

Assignment of ListBpUGraph to another one is not allowed.

Node addANode (  )  [inline]

Returns:
the new node.

Reimplemented from BpUGraphExtender< BidirBpUGraphExtender< ListBpUGraphBase > >.

Node addBNode (  )  [inline]

Returns:
the new node.

Reimplemented from BpUGraphExtender< BidirBpUGraphExtender< ListBpUGraphBase > >.

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

Add a new edge to the graph with an ANode and a BNode.

Returns:
the new undirected edge.

Reimplemented from BpUGraphExtender< BidirBpUGraphExtender< ListBpUGraphBase > >.

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

Changes the ANode of e to n

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

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

Changes the BNode of e to n

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

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

Changes the source(ANode) 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(BNode) of e to n

Note:
The EdgeIts and OutEdgeIts referencing the changed edge remain valid. However InEdgeIts are 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 ( const Node &  a,
const Node &  b 
) [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 two nodes should be from the same nodeset, of course.

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