/// <summary> /// Dijkstras algorithm that traverses the graph to find shortest path /// </summary> /// <param name="graph"> <see cref="Graph"/> instance. </param> /// <param name="startVertex"> The start <see cref="Vertex"/> of path to calculate minimum distance for. </param> /// <param name="endVertex"> The end <see cref="Vertex"/> of path to calculate minimum distance for. </param> /// <returns> The shortest (minimum cost) path from starting point to ending point. </returns> public static Pathway <T> Dijkstra <T>(this DirectedGraph <T> graph, Vertex <T> startVertex, Vertex <T> endVertex) where T : IEquatable <T> { var roadmap = Dijkstra(graph, startVertex); return(roadmap[endVertex]); }