FullGraph is a simple and fast implmenetation of undirected full (complete) graphs. It contains an edge between every distinct pair of nodes, therefore the number of edges is n(n-1)/2
. This class is completely static and it needs constant memory space. Thus you can neither add nor delete nodes or edges, however the structure can be resized using resize().
This type fully conforms to the Graph concept. Most of its member functions and nested classes are documented only in the concept class.
This class provides constant time counting for nodes, edges and arcs.
#include <lemon/full_graph.h>
Inherits GraphExtender< Base >.
Public Member Functions | |
FullGraph () | |
Default constructor. | |
FullGraph (int n) | |
Constructor. | |
void | resize (int n) |
Resizes the graph. | |
Node | operator() (int ix) const |
Returns the node with the given index. | |
Arc | arc (Node s, Node t) const |
Edge | edge (Node u, Node v) const |
int | nodeNum () const |
Number of nodes. | |
int | arcNum () const |
Number of arcs. | |
int | edgeNum () const |
Number of edges. | |
Static Public Member Functions | |
static int | index (const Node &node) |
Returns the index of the given node. | |
|
inline |
Default constructor. The number of nodes and edges will be zero.
|
inline |
Constructor.
n | The number of the nodes. |
|
inline |
This function resizes the graph. It fully destroys and rebuilds the structure, therefore the maps of the graph will be reallocated automatically and the previous values will be lost.
|
inline |
|
inlinestatic |
Returns the index of the given node. Since this structure is completely static, the nodes can be indexed with integers from the range [0..nodeNum()-1]
. The index of a node is the same as its ID.
|
inline |
Returns the arc connecting the given nodes.
|
inline |
Returns the edge connecting the given nodes.