An important extra feature of this graph implementation is that its maps are real reference maps.
#include <lemon/list_graph.h>

| 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 eton. | |
| void | changeBNode (UEdge e, Node n) | 
| Changes the BNode of eton. | |
| void | changeSource (UEdge e, Node n) | 
| Changes the source(ANode) of eton. | |
| void | changeTarget (UEdge e, Node n) | 
| Changes the target(BNode) of eton. | |
| void | changeSource (Edge e, Node n) | 
| Changes the source of eton. | |
| void | changeTarget (Edge e, Node n) | 
| Changes the target of eton. | |
| void | contract (const Node &a, const Node &b) | 
| Contract two nodes. | |
| Private Member Functions | |
| ListBpUGraph (const ListBpUGraph &) | |
| void | operator= (const ListBpUGraph &) | 
| ListBpUGraph | ( | const ListBpUGraph & | ) |  [inline, private] | 
ListBpUGraph is not copy constructible.
| ListBpUGraph | ( | ) |  [inline] | 
Constructor.
| void operator= | ( | const ListBpUGraph & | ) |  [inline, private] | 
Assignment of ListBpUGraph to another one is not allowed.
| Node addANode | ( | ) |  [inline] | 
Reimplemented from BpUGraphExtender< BidirBpUGraphExtender< ListBpUGraphBase > >.
| Node addBNode | ( | ) |  [inline] | 
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.
Reimplemented from BpUGraphExtender< BidirBpUGraphExtender< ListBpUGraphBase > >.
| void changeANode | ( | UEdge | e, | |
| Node | n | |||
| ) |  [inline] | 
Changes the ANode of e to n 
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 
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 
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 
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.
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.
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.
EdgeIts referencing a moved edge remain valid. 
 1.5.9
 1.5.9