eulerian_path.h File Reference

Go to the source code of this file.

Namespaces

 operations_research
 Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
 

Functions

template<typename Graph >
bool operations_research::IsEulerianGraph (const Graph &graph)
 Returns true if a graph is Eulerian, aka all its nodes are of even degree. More...
 
template<typename NodeIndex , typename Graph >
bool operations_research::IsSemiEulerianGraph (const Graph &graph, std::vector< NodeIndex > *odd_nodes)
 Returns true if a graph is Semi-Eulerian, aka at most two of its nodes are of odd degree. More...
 
template<typename NodeIndex , typename Graph >
std::vector< NodeIndex > operations_research::BuildEulerianPathFromNode (const Graph &graph, NodeIndex root)
 Builds an Eulerian path/trail on an undirected graph starting from node root. More...
 
template<typename NodeIndex , typename Graph >
std::vector< NodeIndex > operations_research::BuildEulerianTourFromNode (const Graph &graph, NodeIndex root)
 Builds an Eulerian tour/circuit/cycle starting and ending at node root on an undirected graph. More...
 
template<typename Graph >
std::vector< typename Graph::NodeIndex > operations_research::BuildEulerianTour (const Graph &graph)
 Same as above but without specifying a start/end root node (node 0 is taken as default root). More...
 
template<typename Graph >
std::vector< typename Graph::NodeIndex > operations_research::BuildEulerianPath (const Graph &graph)
 Builds an Eulerian path/trail on an undirected graph. More...