Satsuma
a delicious .NET graph library
|
A graph implementation capable of storing any graph. More...
Public Member Functions | |
Arc | AddArc (Node u, Node v, Directedness directedness) |
Adds a directed arc or an edge (undirected arc) between u and v to the graph. More... | |
Node | AddNode () |
Adds a node to the graph. More... | |
int | ArcCount (ArcFilter filter=ArcFilter.All) |
Returns the total number of arcs satisfying a given filter. More... | |
int | ArcCount (Node u, ArcFilter filter=ArcFilter.All) |
Returns the number of arcs adjacent to a specific node satisfying a given filter. More... | |
int | ArcCount (Node u, Node v, ArcFilter filter=ArcFilter.All) |
Returns the number of arcs adjacent to two nodes satisfying a given filter. More... | |
IEnumerable< Arc > | Arcs (ArcFilter filter=ArcFilter.All) |
IEnumerable< Arc > | Arcs (Node u, ArcFilter filter=ArcFilter.All) |
IEnumerable< Arc > | Arcs (Node u, Node v, ArcFilter filter=ArcFilter.All) |
void | Clear () |
Deletes all nodes and arcs of the adaptor. More... | |
CustomGraph () | |
bool | DeleteArc (Arc arc) |
Deletes a directed or undirected arc from the graph. More... | |
bool | DeleteNode (Node node) |
Deletes a node from the graph. More... | |
bool | HasArc (Arc arc) |
Returns whether the given arc is contained in the graph. More... | |
bool | HasNode (Node node) |
Returns whether the given node is contained in the graph. More... | |
bool | IsEdge (Arc arc) |
Returns whether the arc is undirected (true ) or directed (false ). More... | |
int | NodeCount () |
Returns the total number of nodes in O(1) time. More... | |
IEnumerable< Node > | Nodes () |
Returns all nodes of the graph. More... | |
Node | U (Arc arc) |
Returns the first node of an arc. Directed arcs point from U to V. More... | |
Node | V (Arc arc) |
Returns the second node of an arc. Directed arcs point from U to V. More... | |
A graph implementation capable of storing any graph.
Use this class to create custom graphs. Memory usage: O(n+m), where n is the number of nodes and m is the number of arcs.
|
inherited |
Adds a directed arc or an edge (undirected arc) between u and v to the graph.
u | The source node. |
v | The target node. |
directedness | Determines whether the new arc will be directed or an edge (i.e. undirected). |
Implements Satsuma.IBuildableGraph.
Definition at line 137 of file Supergraph.cs.
|
inherited |
Adds a node to the graph.
Implements Satsuma.IBuildableGraph.
Definition at line 128 of file Supergraph.cs.
|
inherited |
Returns the total number of arcs satisfying a given filter.
filter | Detailed description: see Arcs(ArcFilter). |
Implements Satsuma.IGraph.
Definition at line 299 of file Supergraph.cs.
Returns the number of arcs adjacent to a specific node satisfying a given filter.
filter | Detailed description: see Arcs(Node, ArcFilter). |
Implements Satsuma.IGraph.
Definition at line 304 of file Supergraph.cs.
Returns the number of arcs adjacent to two nodes satisfying a given filter.
filter | Detailed description: see Arcs(Node, Node, ArcFilter). |
Implements Satsuma.IGraph.
Definition at line 309 of file Supergraph.cs.
Returns all arcs of the graph satisfying a given filter.
filter | Cannot be ArcType.Forward/ArcType.Backward.
|
Implements Satsuma.IGraph.
Definition at line 274 of file Supergraph.cs.
Returns all arcs adjacent to a specific node satisfying a given filter.
filter |
|
Implements Satsuma.IGraph.
Definition at line 279 of file Supergraph.cs.
|
inherited |
Returns all arcs adjacent to two nodes satisfying a given filter.
filter |
|
Implements Satsuma.IGraph.
Definition at line 285 of file Supergraph.cs.
|
inherited |
Deletes all nodes and arcs of the adaptor.
Implements Satsuma.IClearable.
Definition at line 112 of file Supergraph.cs.
|
inherited |
Deletes a directed or undirected arc from the graph.
true
if the deletion was successful. Implements Satsuma.IDestroyableGraph.
Definition at line 198 of file Supergraph.cs.
|
inherited |
Deletes a node from the graph.
true
if the deletion was successful. Implements Satsuma.IDestroyableGraph.
Definition at line 169 of file Supergraph.cs.
|
inherited |
Returns whether the given arc is contained in the graph.
Must return the same value as Arcs().Contains
in all implementations, but faster if possible.
true
may be returned for arcs coming from another graph as well, if those arcs encapsulate an identifier which is valid for this graph, too. Implements Satsuma.IGraph.
Definition at line 322 of file Supergraph.cs.
|
inherited |
Returns whether the given node is contained in the graph.
Must return the same value as Nodes().Contains
in all implementations, but faster if possible.
true
may be returned for nodes coming from another graph as well, if those nodes encapsulate an identifier which is valid for this graph, too. Implements Satsuma.IGraph.
Definition at line 317 of file Supergraph.cs.
|
inherited |
Returns whether the arc is undirected (true
) or directed (false
).
Implements Satsuma.IArcLookup.
Definition at line 243 of file Supergraph.cs.
|
inherited |
Returns the total number of nodes in O(1) time.
Implements Satsuma.IGraph.
Definition at line 294 of file Supergraph.cs.
|
inherited |
Returns all nodes of the graph.
Implements Satsuma.IGraph.
Definition at line 269 of file Supergraph.cs.
Returns the first node of an arc. Directed arcs point from U to V.
Implements Satsuma.IArcLookup.
Definition at line 229 of file Supergraph.cs.
Returns the second node of an arc. Directed arcs point from U to V.
Implements Satsuma.IArcLookup.
Definition at line 236 of file Supergraph.cs.