1 #include "../../utils/fwd_declares.hpp" 6 #ifndef INDIGOX_ALGORITHM_GRAPH_PATHS_HPP 7 #define INDIGOX_ALGORITHM_GRAPH_PATHS_HPP 24 template <
class V,
class E,
class S,
class D,
class VP,
class EP>
25 std::vector<E>
ShortestPath(graph::BaseGraph<V, E, S, D, VP, EP> &G, V source,
38 template <
class V,
class E,
class S,
class D,
class VP,
class EP>
39 void AllSimplePaths(graph::BaseGraph<V, E, S, D, VP, EP> &G, V source,
40 V target, std::vector<std::vector<E>> &paths,
67 template <
class V,
class E,
class S,
class D,
class VP,
class EP>
69 V source = V(), int64_t limit = -1);
71 template <
class V,
class E,
class S,
class D,
class VP,
class EP>
TraversalResults< V > BreadthFirstSearch(graph::BaseGraph< V, E, S, D, VP, EP > &G, V source=V(), int64_t limit=-1)
V furthest
Definition: paths.hpp:50
PredType predecessors
Definition: paths.hpp:48
typename std::vector< V > OrderType
Definition: paths.hpp:44
TraversalResults< V > DepthFirstSearch(graph::BaseGraph< V, E, S, D, VP, EP > &G, V source=V(), int64_t limit=-1)
Perform a breadth first search of G.
std::vector< E > ShortestPath(graph::BaseGraph< V, E, S, D, VP, EP > &G, V source, V target)
Find the shortest path between two vertices.
TraversalResults(OrderType &order, PredType &pred, LengthType &length, V &far)
Definition: paths.hpp:52
OrderType discover_order
Definition: paths.hpp:47
typename std::map< V, int32_t > LengthType
Definition: paths.hpp:46
void AllSimplePaths(graph::BaseGraph< V, E, S, D, VP, EP > &G, V source, V target, std::vector< std::vector< E >> &paths, int64_t limit=-1)
Find all the simple paths between two vertices.
LengthType path_lengths
Definition: paths.hpp:49
Template base class for all graphs used in the indigoX library.
Definition: base_graph.hpp:56
typename std::map< V, V > PredType
Definition: paths.hpp:45