Satsuma
a delicious .NET graph library
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Pages
Public Member Functions | List of all members
Satsuma.CustomGraph Class Reference

A graph implementation capable of storing any graph. More...

Inheritance diagram for Satsuma.CustomGraph:
Satsuma.Supergraph Satsuma.IBuildableGraph Satsuma.IDestroyableGraph Satsuma.IGraph Satsuma.IClearable Satsuma.IClearable Satsuma.IArcLookup

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< ArcArcs (ArcFilter filter=ArcFilter.All)
 
IEnumerable< ArcArcs (Node u, ArcFilter filter=ArcFilter.All)
 
IEnumerable< ArcArcs (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< NodeNodes ()
 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...
 

Detailed Description

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.

Definition at line 285 of file Graph.cs.

Constructor & Destructor Documentation

Satsuma.CustomGraph.CustomGraph ( )

Definition at line 287 of file Graph.cs.

Member Function Documentation

Arc Satsuma.Supergraph.AddArc ( Node  u,
Node  v,
Directedness  directedness 
)
inherited

Adds a directed arc or an edge (undirected arc) between u and v to the graph.

Parameters
uThe source node.
vThe target node.
directednessDetermines whether the new arc will be directed or an edge (i.e. undirected).

Implements Satsuma.IBuildableGraph.

Definition at line 137 of file Supergraph.cs.

Node Satsuma.Supergraph.AddNode ( )
inherited

Adds a node to the graph.

Implements Satsuma.IBuildableGraph.

Definition at line 128 of file Supergraph.cs.

int Satsuma.Supergraph.ArcCount ( ArcFilter  filter = ArcFilter.All)
inherited

Returns the total number of arcs satisfying a given filter.

Parameters
filterDetailed description: see Arcs(ArcFilter).

Implements Satsuma.IGraph.

Definition at line 299 of file Supergraph.cs.

int Satsuma.Supergraph.ArcCount ( Node  u,
ArcFilter  filter = ArcFilter.All 
)
inherited

Returns the number of arcs adjacent to a specific node satisfying a given filter.

Parameters
filterDetailed description: see Arcs(Node, ArcFilter).

Implements Satsuma.IGraph.

Definition at line 304 of file Supergraph.cs.

int Satsuma.Supergraph.ArcCount ( Node  u,
Node  v,
ArcFilter  filter = ArcFilter.All 
)
inherited

Returns the number of arcs adjacent to two nodes satisfying a given filter.

Parameters
filterDetailed description: see Arcs(Node, Node, ArcFilter).

Implements Satsuma.IGraph.

Definition at line 309 of file Supergraph.cs.

IEnumerable<Arc> Satsuma.Supergraph.Arcs ( ArcFilter  filter = ArcFilter.All)
inherited

Returns all arcs of the graph satisfying a given filter.

Parameters
filterCannot be ArcType.Forward/ArcType.Backward.
  • If ArcFilter.All, then all arcs are returned.
  • If ArcFilter.Edge, only the edges (undirected arcs) are returned.

Implements Satsuma.IGraph.

Definition at line 274 of file Supergraph.cs.

IEnumerable<Arc> Satsuma.Supergraph.Arcs ( Node  u,
ArcFilter  filter = ArcFilter.All 
)
inherited

Returns all arcs adjacent to a specific node satisfying a given filter.

Parameters
filter
  • If ArcFilter.All, then all arcs are returned.
  • If ArcFilter.Edge, only the edges (undirected arcs) are returned.
  • If ArcFilter.Forward, only the arcs exiting u (this includes edges) are returned.
  • If ArcFilter.Backward, only the arcs entering u (this includes edges) are returned.

Implements Satsuma.IGraph.

Definition at line 279 of file Supergraph.cs.

IEnumerable<Arc> Satsuma.Supergraph.Arcs ( Node  u,
Node  v,
ArcFilter  filter = ArcFilter.All 
)
inherited

Returns all arcs adjacent to two nodes satisfying a given filter.

Parameters
filter
  • If ArcFilter.All, then all arcs are returned.
  • If ArcFilter.Edge, only the edges (undirected arcs) are returned.
  • If ArcFilter.Forward, only the arcs from u to v (this includes edges) are returned.
  • If ArcFilter.Backward, only the arcs from v to u (this includes edges) are returned.

Implements Satsuma.IGraph.

Definition at line 285 of file Supergraph.cs.

void Satsuma.Supergraph.Clear ( )
inherited

Deletes all nodes and arcs of the adaptor.

Implements Satsuma.IClearable.

Definition at line 112 of file Supergraph.cs.

bool Satsuma.Supergraph.DeleteArc ( Arc  arc)
inherited

Deletes a directed or undirected arc from the graph.

Returns
true if the deletion was successful.

Implements Satsuma.IDestroyableGraph.

Definition at line 198 of file Supergraph.cs.

bool Satsuma.Supergraph.DeleteNode ( Node  node)
inherited

Deletes a node from the graph.

Returns
true if the deletion was successful.

Implements Satsuma.IDestroyableGraph.

Definition at line 169 of file Supergraph.cs.

bool Satsuma.Supergraph.HasArc ( Arc  arc)
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.

Note
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.

bool Satsuma.Supergraph.HasNode ( Node  node)
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.

Note
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.

bool Satsuma.Supergraph.IsEdge ( Arc  arc)
inherited

Returns whether the arc is undirected (true) or directed (false).

Implements Satsuma.IArcLookup.

Definition at line 243 of file Supergraph.cs.

int Satsuma.Supergraph.NodeCount ( )
inherited

Returns the total number of nodes in O(1) time.

Implements Satsuma.IGraph.

Definition at line 294 of file Supergraph.cs.

IEnumerable<Node> Satsuma.Supergraph.Nodes ( )
inherited

Returns all nodes of the graph.

Implements Satsuma.IGraph.

Definition at line 269 of file Supergraph.cs.

Node Satsuma.Supergraph.U ( Arc  arc)
inherited

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.

Node Satsuma.Supergraph.V ( Arc  arc)
inherited

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.


The documentation for this class was generated from the following file: