Google OR-Tools v9.15
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
util::TopologicalSorter< T, stable_sort, Hash, KeyEqual > Class Template Reference

Detailed Description

template<typename T, bool stable_sort = false, typename Hash = typename absl::flat_hash_map<T, int>::hasher, typename KeyEqual = typename absl::flat_hash_map<T, int, Hash>::key_equal>
class util::TopologicalSorter< T, stable_sort, Hash, KeyEqual >

Definition at line 331 of file topologicalsorter.h.

#include <topologicalsorter.h>

Inheritance diagram for util::TopologicalSorter< T, stable_sort, Hash, KeyEqual >:
TopologicalSorter< T, stable_sort, Hash, KeyEqual >

Public Member Functions

 TopologicalSorter ()=default
 TopologicalSorter (const TopologicalSorter &)=delete
TopologicalSorteroperator= (const TopologicalSorter &)=delete
 ~TopologicalSorter ()=default
void AddNode (const T &node)
void AddEdges (const std::vector< std::pair< T, T > > &edges)
void AddEdge (const T &from, const T &to)
bool GetNext (T *node, bool *cyclic_ptr, std::vector< T > *output_cycle_nodes=nullptr)
int GetCurrentFringeSize ()
void StartTraversal ()
bool TraversalStarted () const

Constructor & Destructor Documentation

◆ TopologicalSorter() [1/2]

template<typename T, bool stable_sort = false, typename Hash = typename absl::flat_hash_map<T, int>::hasher, typename KeyEqual = typename absl::flat_hash_map<T, int, Hash>::key_equal>
util::TopologicalSorter< T, stable_sort, Hash, KeyEqual >::TopologicalSorter ( )
default

◆ TopologicalSorter() [2/2]

template<typename T, bool stable_sort = false, typename Hash = typename absl::flat_hash_map<T, int>::hasher, typename KeyEqual = typename absl::flat_hash_map<T, int, Hash>::key_equal>
util::TopologicalSorter< T, stable_sort, Hash, KeyEqual >::TopologicalSorter ( const TopologicalSorter< T, stable_sort, Hash, KeyEqual > & )
delete

◆ ~TopologicalSorter()

template<typename T, bool stable_sort = false, typename Hash = typename absl::flat_hash_map<T, int>::hasher, typename KeyEqual = typename absl::flat_hash_map<T, int, Hash>::key_equal>
util::TopologicalSorter< T, stable_sort, Hash, KeyEqual >::~TopologicalSorter ( )
default

Member Function Documentation

◆ AddEdge()

template<typename T, bool stable_sort = false, typename Hash = typename absl::flat_hash_map<T, int>::hasher, typename KeyEqual = typename absl::flat_hash_map<T, int, Hash>::key_equal>
void util::TopologicalSorter< T, stable_sort, Hash, KeyEqual >::AddEdge ( const T & from,
const T & to )
inline

Definition at line 359 of file topologicalsorter.h.

◆ AddEdges()

template<typename T, bool stable_sort = false, typename Hash = typename absl::flat_hash_map<T, int>::hasher, typename KeyEqual = typename absl::flat_hash_map<T, int, Hash>::key_equal>
void util::TopologicalSorter< T, stable_sort, Hash, KeyEqual >::AddEdges ( const std::vector< std::pair< T, T > > & edges)
inline

Definition at line 351 of file topologicalsorter.h.

◆ AddNode()

template<typename T, bool stable_sort = false, typename Hash = typename absl::flat_hash_map<T, int>::hasher, typename KeyEqual = typename absl::flat_hash_map<T, int, Hash>::key_equal>
void util::TopologicalSorter< T, stable_sort, Hash, KeyEqual >::AddNode ( const T & node)
inline

Definition at line 348 of file topologicalsorter.h.

◆ GetCurrentFringeSize()

template<typename T, bool stable_sort = false, typename Hash = typename absl::flat_hash_map<T, int>::hasher, typename KeyEqual = typename absl::flat_hash_map<T, int, Hash>::key_equal>
int util::TopologicalSorter< T, stable_sort, Hash, KeyEqual >::GetCurrentFringeSize ( )
inline

Definition at line 405 of file topologicalsorter.h.

◆ GetNext()

template<typename T, bool stable_sort = false, typename Hash = typename absl::flat_hash_map<T, int>::hasher, typename KeyEqual = typename absl::flat_hash_map<T, int, Hash>::key_equal>
bool util::TopologicalSorter< T, stable_sort, Hash, KeyEqual >::GetNext ( T * node,
bool * cyclic_ptr,
std::vector< T > * output_cycle_nodes = nullptr )
inline

Definition at line 384 of file topologicalsorter.h.

◆ operator=()

template<typename T, bool stable_sort = false, typename Hash = typename absl::flat_hash_map<T, int>::hasher, typename KeyEqual = typename absl::flat_hash_map<T, int, Hash>::key_equal>
TopologicalSorter & util::TopologicalSorter< T, stable_sort, Hash, KeyEqual >::operator= ( const TopologicalSorter< T, stable_sort, Hash, KeyEqual > & )
delete

◆ StartTraversal()

template<typename T, bool stable_sort = false, typename Hash = typename absl::flat_hash_map<T, int>::hasher, typename KeyEqual = typename absl::flat_hash_map<T, int, Hash>::key_equal>
void util::TopologicalSorter< T, stable_sort, Hash, KeyEqual >::StartTraversal ( )
inline

Definition at line 414 of file topologicalsorter.h.

◆ TraversalStarted()

template<typename T, bool stable_sort = false, typename Hash = typename absl::flat_hash_map<T, int>::hasher, typename KeyEqual = typename absl::flat_hash_map<T, int, Hash>::key_equal>
bool util::TopologicalSorter< T, stable_sort, Hash, KeyEqual >::TraversalStarted ( ) const
inline

Definition at line 428 of file topologicalsorter.h.


The documentation for this class was generated from the following file: