Satsuma
a delicious .NET graph library
|
Adaptor for storing a path of an underlying graph. More...
Public Member Functions | |
void | AddFirst (Arc arc) |
Appends an arc to the start of the path. More... | |
void | AddLast (Arc arc) |
Appends an arc to the end of the path. 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 | Begin (Node node) |
Makes a one-node path from an empty path. More... | |
void | Clear () |
Resets the path to an empty path. 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... | |
Arc | NextArc (Node node) |
Returns the arc connecting a node with its successor in the path. More... | |
int | NodeCount () |
Returns the total number of nodes in O(1) time. More... | |
IEnumerable< Node > | Nodes () |
Returns all nodes of the graph. More... | |
Path (IGraph graph) | |
Initializes an empty path. More... | |
Arc | PrevArc (Node node) |
Returns the arc connecting a node with its predecessor in the path. More... | |
void | Reverse () |
Reverses the path in O(1) time. 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... | |
Properties | |
Node | FirstNode [get, set] |
IGraph | Graph [get, set] |
The graph containing the path. More... | |
Node | LastNode [get, set] |
Adaptor for storing a path of an underlying graph.
The Node and Arc set of the adaptor is a subset of that of the original graph. The underlying graph can be modified while using this adaptor, as long as no path nodes and path arcs are deleted.
Example (building a path):
Satsuma.Path.Path | ( | IGraph | graph | ) |
void Satsuma.Path.AddFirst | ( | Arc | arc | ) |
void Satsuma.Path.AddLast | ( | Arc | arc | ) |
int Satsuma.Path.ArcCount | ( | ArcFilter | filter = ArcFilter.All | ) |
Returns the total number of arcs satisfying a given filter.
filter | Detailed description: see Arcs(ArcFilter). |
Implements Satsuma.IGraph.
Returns the number of arcs adjacent to a specific node satisfying a given filter.
filter | Detailed description: see Arcs(Node, ArcFilter). |
Implements Satsuma.IGraph.
Returns the number of arcs adjacent to two nodes satisfying a given filter.
filter | Detailed description: see Arcs(Node, Node, ArcFilter). |
Implements Satsuma.IGraph.
Returns all arcs of the graph satisfying a given filter.
filter | Cannot be ArcType.Forward/ArcType.Backward.
|
Implements Satsuma.IGraph.
Returns all arcs adjacent to a specific node satisfying a given filter.
filter |
|
Implements Satsuma.IGraph.
Returns all arcs adjacent to two nodes satisfying a given filter.
filter |
|
Implements Satsuma.IGraph.
void Satsuma.Path.Begin | ( | Node | node | ) |
void Satsuma.Path.Clear | ( | ) |
Resets the path to an empty path.
Implements Satsuma.IClearable.
bool Satsuma.Path.HasArc | ( | Arc | arc | ) |
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.
bool Satsuma.Path.HasNode | ( | Node | node | ) |
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.
bool Satsuma.Path.IsEdge | ( | Arc | arc | ) |
Returns whether the arc is undirected (true
) or directed (false
).
Implements Satsuma.IArcLookup.
Returns the arc connecting a node with its successor in the path.
Returns Arc.Invalid if the node is not on the path or has no successor. If the path is a cycle, then each node has a successor.
Implements Satsuma.IPath.
int Satsuma.Path.NodeCount | ( | ) |
Returns the total number of nodes in O(1) time.
Implements Satsuma.IGraph.
IEnumerable<Node> Satsuma.Path.Nodes | ( | ) |
Returns the arc connecting a node with its predecessor in the path.
Returns Arc.Invalid if the node is not on the path or has no predecessor. If the path is a cycle, then each node has a predecessor.
Implements Satsuma.IPath.
void Satsuma.Path.Reverse | ( | ) |
Returns the first node of an arc. Directed arcs point from U to V.
Implements Satsuma.IArcLookup.
Returns the second node of an arc. Directed arcs point from U to V.
Implements Satsuma.IArcLookup.
|
getset |