Class AcyclicShortestPaths<TWeight>
- Namespace
- AlgorithmsSW.EdgeWeightedDigraph
- Assembly
- AlgorithmsSW.dll
Algorithm that finds the shortest paths in an edge weighted digraph with no negative cycles.
public class AcyclicShortestPaths<TWeight> : IShortestPath<TWeight> where TWeight : INumber<TWeight>, IMinMaxValue<TWeight>
Type Parameters
TWeightThe type of the edge weights.
- Inheritance
-
AcyclicShortestPaths<TWeight>
- Implements
-
IShortestPath<TWeight>
- Inherited Members
- Extension Methods
Constructors
AcyclicShortestPaths(IReadOnlyEdgeWeightedDigraph<TWeight>, int)
Initializes a new instance of the AcyclicShortestPaths<TWeight> class.
public AcyclicShortestPaths(IReadOnlyEdgeWeightedDigraph<TWeight> graph, int source)
Parameters
graphIReadOnlyEdgeWeightedDigraph<TWeight>The graph to find the shortest paths in.
sourceintThe source vertex to find the shortest paths from.
Methods
GetDistanceTo(int)
Gets the distance from the source vertex to the given vertex.
public TWeight GetDistanceTo(int vertex)
Parameters
vertexintThe vertex to find the distance to.
Returns
- TWeight
The distance from the source vertex to the given vertex.
GetEdgesOfPathTo(int)
Gets the path from the source vertex to the given vertex.
public IEnumerable<DirectedEdge<TWeight>> GetEdgesOfPathTo(int target)
Parameters
targetintThe vertex to find the path to.
Returns
- IEnumerable<DirectedEdge<TWeight>>
An enumerable of edges representing the path from the source vertex to the given vertex.
Exceptions
- InvalidOperationException
+there is no path from the source vertex to the given vertex.
HasPathTo(int)
Whether there is a path from the source vertex to the given vertex.
public bool HasPathTo(int vertex)
Parameters
vertexintThe vertex to check if there is a path to.