GraphBaseTVertex, TEdge Class |
Namespace: SD.Tools.Algorithmia.Graphs
The GraphBaseTVertex, TEdge type exposes the following members.
Name | Description | |
---|---|---|
GraphBaseTVertex, TEdge(Boolean) |
Initializes a new instance of the GraphBaseTVertex, TEdge class.
| |
GraphBaseTVertex, TEdge(Boolean, Boolean) |
Initializes a new instance of the GraphBaseTVertex, TEdge class.
| |
GraphBaseTVertex, TEdge(GraphBaseTVertex, TEdge, Boolean) |
Copy constructor of the GraphBaseTVertex, TEdge class.
| |
GraphBaseTVertex, TEdge(Boolean, Boolean, Boolean) |
Initializes a new instance of the GraphBaseTVertex, TEdge class.
| |
GraphBaseTVertex, TEdge(GraphBaseTVertex, TEdge, Boolean, Boolean) |
Copy constructor of the GraphBaseTVertex, TEdge class.
| |
GraphBaseTVertex, TEdge(GraphBaseTVertex, TEdge, Boolean, Boolean, Boolean) |
Copy constructor of the GraphBaseTVertex, TEdge class.
|
Name | Description | |
---|---|---|
EdgeCount |
Returns the number of edges in this graph.
If this graph is a directed graph, it counts the edge A to B as an edge, but B to A, if not present, isn't counted. A non-directed graph
has an edge between A and B but also between B and A. This is counted as 1 edge, not two.
| |
EdgeProducerFunc |
Gets or sets the edge producer func which produces edges for this graph. Used in some algorithms which have to produce edges.
| |
Edges |
Returns the edges in this graph. Enumerating this property will enumerate the inner structures of the graph, no copy is made. This requires
a lock on SyncRoot if IsSynchronized is set to true to make sure enumeration of this property is thread safe.
| |
IsDirected | if true, the graph is directed and only EdgeBase instances which have IsDirected set to true are allowed,
otherwise it's a non-directed graph and EdgeBase instances which have IsDirected set to false are accepted.
| |
IsSynchronized | ||
RemoveOrphanedVerticesOnEdgeRemoval |
Gets or sets a value indicating whether vertices which are not part of any edge anymore are removed from the graph when the edge they're part
of is removed from the graph (so they effectively are orphaned). Default is false.
| |
SuppressEvents |
Gets or sets a value indicating whether events are blocked from being raised (true) or not (false, default)
| |
SyncRoot | ||
VertexCount |
Returns the number of vertices in this graph.
| |
Vertices |
Returns the vertices in this graph. Enumerating this property will enumerate the inner structures of the graph, no copy is made. This requires
a lock on SyncRoot if IsSynchronized is set to true to make sure enumeration of this property is thread safe.
|
Name | Description | |
---|---|---|
Add(TEdge) |
Adds the provided edge to this graph. If the vertex(s) are not yet in this graph, it/they are added as well.
| |
Add(TVertex) |
Adds the provided vertex to this graph.
| |
Add(GraphBaseTVertex, TEdge) |
Adds all elements (i.e. vertices and edges) from the provided graph to this graph.
| |
ComposeTGraph |
Returns a composition of the two provided graphs. See http://en.wikipedia.org/wiki/Lexicographic_product_of_graphs.
| |
Contains(TEdge) |
Determines whether this graph contains the edge object specified.
| |
Contains(TVertex) |
Returns whether a vertex exists in this graph.
| |
ContainsEdge |
Returns whether an edge exists in this graph between the start vertex and the end vertex specified.
| |
Disconnect |
Removes all edges from this graph between startVertex and endVertex. It will only remove edges between startVertex and endVertex, not between endVertex and startVertex,
unless bothSides is set to true, then all edges between both vertices are removed, discarding their direction.
| |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) | |
GetAdjacencyListForVertex |
Gets the adjacency list for vertex. The adjacency list is a list of TVertex - Hashset(Of TEdge) tuples, as a vertex can have multiple edges with the same
related vertex.
| |
GetAsNonDirectedCopy |
Creates a NonDirectedGraph version of this graph. Always creates a copy, even if this graph is a non-directed graph.
| |
GetEdges |
Gets all the edges between startVertex and endVertex.
| |
GetEdgesFromStartVertex |
Gets all the edges started from the startvertex specified.
| |
GetEdgesSyncedAsList |
Gets the edges as list, and perform this operation synced with the SyncRoot, to avoid threading issues.
| |
GetEdgesToEndVertex |
Gets all the edges which end in the endVertex specified.
| |
GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
GetOrphanedVertices |
Gets the orphaned vertices. Orphaned vertices are vertices which are not part of any edge in the graph
| |
GetSubGraphTGraph |
Gets a subgraph from this graph with the vertices and edges which match the functions specified. It creates a new instance and
places the same vertex and edge instances in that graph.
| |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
GetVerticesSyncedAsList |
Gets the vertices as list, and perform this operation synced with the SyncRoot, to avoid threading issues.
| |
IsConnected |
A graph is called connected if every pair of distinct vertices in the graph is connected (directly or indirectly).
A connected component is a maximal connected subgraph of G. Each vertex belongs to exactly one connected component, as does each edge.
A directed graph is called weakly connected if replacing all of its directed edges with undirected edges produces a connected (undirected) graph.
It is strongly connected or strong if it contains a directed path from u to v and a directed path from v to u for every pair of vertices u,v.
The strong components are the maximal strongly connected subgraphs.
See http://en.wikipedia.org/wiki/Connectivity_(graph_theory)
We will only check for a connected un-directed graph or a weakly connected directed graph (same logic).
| |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
OnEdgeAdded |
Called when an edge has been added
| |
OnEdgeAdding |
Called when an edge is about to be added
| |
OnEdgeRemoved |
Called when an edge has been removed
| |
OnEdgeRemoving |
Called when an edge is about to be removed
| |
OnVertexAdded |
Called when a vertex has been added
| |
OnVertexAdding |
Called when a vertex is about to be added
| |
OnVertexRemoved |
Called when a vertex has been removed
| |
OnVertexRemoving |
Called when a vertex is about to be removed
| |
PerformSyncedAction(Action) |
Performs the specified action, either inside a lock on SyncRoot if this graph is Synchronized, or normally, if the graph isn't synchronized.
| |
PerformSyncedActionT(FuncT) |
Performs the specified action, either inside a lock on SyncRoot if this graph is Synchronized, or normally, if the graph isn't synchronized.
| |
Remove(TEdge) |
Removes the provided edge from the graph.
| |
Remove(TVertex) |
Removes a vertex from this graph.
| |
Remove(GraphBaseTVertex, TEdge) |
Removes all elements (i.e. vertices and edges) of the provided graph from this graph.
| |
Remove(GraphBaseTVertex, TEdge, Boolean) |
Removes all elements (i.e. vertices and/or edges) of the provided graph from this graph.
| |
ToString | (Overrides ObjectToString.) | |
ValidateEdgeForAddition |
Validates if the edge passed in is addable to this graph structure. The start vertex and the end vertex for the are given as well. The same edge
is present between startVertex and endVertex and also between endVertex and startVertex if the graph is a nondirected graph, hence the necessity of these two
vertices in this routine
| |
ValidateEdgeForRemoval |
Validates if the edge passed in is removable from this graph structure. The start vertex and the end vertex for the are given as well. The same edge
is present between startVertex and endVertex and also between endVertex and startVertex if the graph is a nondirected graph, hence the necessity of these two
vertices in this routine
| |
ValidateVertexForAddition |
Validates if the vertex passed in is addable to this graph structure.
| |
ValidateVertexForRemoval |
Validates if the vertex passed in is removable from this graph structure.
| |
ValidateVertexFromRemovalFromAdjacencyList |
Validates if the vertexToRemove passed in is removable from the adjacency list of the vertex vertex. Removing the vertex means all edges from vertex to
vertexToRemove are physically removed from the graph structure.
|
Name | Description | |
---|---|---|
EdgeAdded |
Event which is raised when an edge has been added
| |
EdgeAdding |
Event which is raised when an edge is about to be added
| |
EdgeRemoved |
Event which is raised when an edge has been removed
| |
EdgeRemoving |
Event which is raised when an edge is about to be removed
| |
VertexAdded |
Event which is raised when a vertex has been added
| |
VertexAdding |
Event which is raised when a vertex is about to be added.
| |
VertexRemoved |
Event which is raised when a vertex has been removed
| |
VertexRemoving |
Event which is raised when a vertex is about to be removed
|