Class ShortestPathStAbstract

java.lang.Object
com.jgalgo.alg.shortestpath.ShortestPathStAbstract
All Implemented Interfaces:
ShortestPathSt
Direct Known Subclasses:
ShortestPathStBidirectionalBfs, ShortestPathStBidirectionalDijkstra

public abstract class ShortestPathStAbstract extends Object implements ShortestPathSt
Abstract class for computing a single shortest path between a source and a target.

The class implements the interface by solving the problem on the index graph and then maps the results back to the original graph. The implementation for index graphs is abstract and left to the subclasses.

Author:
Barak Ugav
  • Constructor Details

    • ShortestPathStAbstract

      public ShortestPathStAbstract()
      Default constructor.
  • Method Details

    • computeShortestPathAndWeight

      public <V, E> ObjectDoublePair<Path<V,E>> computeShortestPathAndWeight(Graph<V,E> g, WeightFunction<E> w, V source, V target)
      Description copied from interface: ShortestPathSt
      Compute the shortest path from a source vertex to a target vertex, and its weight.

      If g is an IntGraph, a IPath object will be returned. In that case, its better to pass a IWeightFunction as w to avoid boxing/unboxing.

      Specified by:
      computeShortestPathAndWeight in interface ShortestPathSt
      Type Parameters:
      V - the vertices type
      E - the edges type
      Parameters:
      g - the graph
      w - an edge weight function
      source - the source vertex
      target - the target vertex
      Returns:
      a pair of the shortest path from the source to the target, and its weight, or null if there is no path