12#ifndef __GraphUtilities_H
13#define __GraphUtilities_H
19#include <unordered_map>
39 void FillOrder(
const unsigned int &
v,
42 std::stack<int> &
stack)
const;
52 const std::unordered_map<unsigned int, unsigned int> &
subGraphFilter)
const;
59 const std::vector<std::vector<unsigned int>> &
graphAdjacency)
const;
75 const std::vector<std::vector<unsigned int>> &
graphAdjacency)
const;
Eigen column vector.
Definition Eigen_Array.hpp:23
Definition GraphUtilities.hpp:25
void DepthFirstSearch(const unsigned int &vertex, const std::vector< std::vector< unsigned int > > &graphAdjacency, std::vector< bool > &visited, std::list< unsigned int > &visitedVertices) const
A recursive function to DFS starting from v.
Definition GraphUtilities.cpp:18
std::vector< std::vector< unsigned int > > ExtractSubGraph(const std::vector< std::vector< unsigned int > > &graphAdjacency, const std::unordered_map< unsigned int, unsigned int > &subGraphFilter) const
Definition GraphUtilities.cpp:106
Eigen::MatrixXi GraphAdjacencyToGraphConnectivity(const unsigned int &graphNumEdges, const std::vector< std::vector< unsigned int > > &graphAdjacency) const
Definition GraphUtilities.cpp:184
std::vector< std::vector< unsigned int > > ComputeAdjacencyTranspose(const std::vector< std::vector< unsigned int > > &graphAdjacency) const
Definition GraphUtilities.cpp:67
std::vector< std::vector< unsigned int > > ComputeStronglyConnectedComponents(const std::vector< std::vector< unsigned int > > &graphAdjacency) const
Compute the Strongly Connected Components of a direct graph.
Definition GraphUtilities.cpp:200
std::vector< unsigned int > BreadthFirstSearch(const unsigned int &vertex, const std::vector< std::vector< unsigned int > > &graphAdjacency) const
A function to BFS starting from v.
Definition GraphUtilities.cpp:37
GraphUtilities()
Definition GraphUtilities.hpp:45
~GraphUtilities()
Definition GraphUtilities.hpp:46
GraphAdjacencyData GraphConnectivityToGraphAdjacency(const unsigned int &graphNumVertices, const Eigen::MatrixXi &graphConnectivity, const bool &directEdges=true) const
Definition GraphUtilities.cpp:135
Definition Eigen_Array.cpp:22
Definition GraphUtilities.hpp:28
std::vector< std::unordered_map< unsigned int, unsigned int > > GraphAdjacencyEdgesMap
Definition GraphUtilities.hpp:32
std::vector< std::vector< unsigned int > > GraphAdjacencyVertices
Definition GraphUtilities.hpp:29
std::vector< std::unordered_map< unsigned int, unsigned int > > GraphAdjacencyVerticesMap
Definition GraphUtilities.hpp:30
std::vector< std::vector< unsigned int > > GraphAdjacencyEdges
Definition GraphUtilities.hpp:31