Class WeightedDiGraph<T, TW>
A weighted graph implementation using dynamically growing/shrinking adjacency matrix array.
IEnumerable enumerates all vertices.
Inheritance
WeightedDiGraph<T, TW>
Implements
IGraph<T>
IEnumerable<T>
Assembly: Advanced.Algorithms.dll
Syntax
public class WeightedDiGraph<T, TW> : IDiGraph<T>, IGraph<T>, IEnumerable<T> where TW : IComparable
Type Parameters
Constructors
WeightedDiGraph()
Declaration
Properties
IsWeightedGraph
Declaration
public bool IsWeightedGraph { get; }
Property Value
ReferenceVertex
Declaration
public IDiGraphVertex<T> ReferenceVertex { get; }
Property Value
Type |
Description |
IDiGraphVertex<T> |
|
VerticesAsEnumberable
Declaration
public IEnumerable<IDiGraphVertex<T>> VerticesAsEnumberable { get; }
Property Value
Type |
Description |
IEnumerable<IDiGraphVertex<T>> |
|
VerticesCount
Declaration
public int VerticesCount { get; }
Property Value
Methods
AddEdge(T, T, TW)
Add a new edge to this graph.
Time complexity: O(1).
Declaration
public void AddEdge(T source, T dest, TW weight)
Parameters
Type |
Name |
Description |
T |
source |
|
T |
dest |
|
TW |
weight |
|
AddVertex(T)
Add a new vertex to this graph.
Time complexity: O(1).
Declaration
public void AddVertex(T value)
Parameters
Type |
Name |
Description |
T |
value |
|
Clone()
Declaration
public WeightedDiGraph<T, TW> Clone()
Returns
ContainsVertex(T)
Declaration
public bool ContainsVertex(T value)
Parameters
Type |
Name |
Description |
T |
value |
|
Returns
GetEnumerator()
Declaration
public IEnumerator<T> GetEnumerator()
Returns
Type |
Description |
IEnumerator<T> |
|
GetVertex(T)
Declaration
public IDiGraphVertex<T> GetVertex(T key)
Parameters
Type |
Name |
Description |
T |
key |
|
Returns
Type |
Description |
IDiGraphVertex<T> |
|
HasEdge(T, T)
Do we have an edge between given source and destination?
Time complexity: O(1).
Declaration
public bool HasEdge(T source, T dest)
Parameters
Type |
Name |
Description |
T |
source |
|
T |
dest |
|
Returns
InEdgeCount(T)
Declaration
public int InEdgeCount(T vertex)
Parameters
Type |
Name |
Description |
T |
vertex |
|
Returns
InEdges(T)
Declaration
public IEnumerable<KeyValuePair<T, TW>> InEdges(T vertex)
Parameters
Type |
Name |
Description |
T |
vertex |
|
Returns
Type |
Description |
IEnumerable<KeyValuePair<T, TW>> |
|
OutEdgeCount(T)
Declaration
public int OutEdgeCount(T vertex)
Parameters
Type |
Name |
Description |
T |
vertex |
|
Returns
OutEdges(T)
Declaration
public IEnumerable<KeyValuePair<T, TW>> OutEdges(T vertex)
Parameters
Type |
Name |
Description |
T |
vertex |
|
Returns
Type |
Description |
IEnumerable<KeyValuePair<T, TW>> |
|
RemoveEdge(T, T)
Remove the given edge from this graph.
Time complexity: O(1).
Declaration
public void RemoveEdge(T source, T dest)
Parameters
Type |
Name |
Description |
T |
source |
|
T |
dest |
|
RemoveVertex(T)
Remove the given vertex.
Time complexity: O(V) where V is the number of vertices.
Declaration
public void RemoveVertex(T value)
Parameters
Type |
Name |
Description |
T |
value |
|
Implements
IGraph<>
IEnumerable<>