Class DijkstraLazy<TWeight>
- Namespace
- AlgorithmsSW.EdgeWeightedDigraph
- Assembly
- AlgorithmsSW.dll
Algorithm to find the shortest path from a source vertex to all other vertices in a edge weighted digraph.
[ExerciseReference(4, 4, 39)]
public class DijkstraLazy<TWeight> : IShortestPath<TWeight> where TWeight : INumber<TWeight>, IMinMaxValue<TWeight>
Type Parameters
TWeight
The type of the edge weights.
- Inheritance
-
DijkstraLazy<TWeight>
- Implements
-
IShortestPath<TWeight>
- Inherited Members
- Extension Methods
Constructors
DijkstraLazy(IReadOnlyEdgeWeightedDigraph<TWeight>, int)
Initializes a new instance of the DijkstraLazy<TWeight> class.
public DijkstraLazy(IReadOnlyEdgeWeightedDigraph<TWeight> graph, int source)
Parameters
graph
IReadOnlyEdgeWeightedDigraph<TWeight>The graph to find the shortest paths in.
source
intThe 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
vertex
intThe 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
target
intThe 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.
GetPathTo(int)
public DirectedPath<TWeight> GetPathTo(int target)
Parameters
target
int
Returns
- DirectedPath<TWeight>
HasPathTo(int)
Whether there is a path from the source vertex to the given vertex.
public bool HasPathTo(int vertex)
Parameters
vertex
intThe vertex to check if there is a path to.