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 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 &) |
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
EdgeIt
s and InEdgeIt
s referencing the changed edge remain valid. However OutEdgeIt
s are invalidated. void changeBNode | ( | UEdge | e, | |
Node | n | |||
) | [inline] |
Changes the BNode of e
to n
EdgeIt
s and OutEdgeIt
s referencing the changed edge remain valid. However InEdgeIt
s are invalidated. void changeSource | ( | UEdge | e, | |
Node | n | |||
) | [inline] |
Changes the source(ANode) of e
to n
EdgeIt
s and InEdgeIt
s referencing the changed edge remain valid. However OutEdgeIt
s are invalidated. void changeTarget | ( | UEdge | e, | |
Node | n | |||
) | [inline] |
Changes the target(BNode) of e
to n
EdgeIt
s and OutEdgeIt
s referencing the changed edge remain valid. However InEdgeIt
s 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.
EdgeIt
s and InEdgeIt
s referencing the changed edge remain valid. However OutEdgeIt
s 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.
EdgeIt
s and OutEdgeIt
s referencing the changed edge remain valid. However InEdgeIt
s 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.
EdgeIt
s referencing a moved edge remain valid.