Vcsn
2.0
Be Rational
|
Use Tarjan's algorithm to find all strongly connected components. More...
#include <scc.hh>
Public Types | |
using | state_t = state_t_of< Aut > |
using | component_t = detail::component_t< Aut > |
using | components_t = detail::components_t< Aut > |
Public Member Functions | |
scc_tarjan_impl (const Aut &aut) | |
const components_t | components () |
Private Member Functions | |
void | dfs (state_t s, const Aut &aut) |
Private Attributes | |
std::size_t | curr_comp_num_ = 0 |
The current component number. More... | |
std::size_t | curr_vertex_num_ = 0 |
The current visited vertex. More... | |
components_t | components_ |
All compnents. More... | |
std::set< state_t > | marked_ |
List visited vertices. More... | |
std::unordered_map< state_t, std::size_t > | low_ |
low_[s] is minimum of vertex that it can go More... | |
std::stack< state_t > | stack_ |
Contains list vertices same the component. More... | |
Use Tarjan's algorithm to find all strongly connected components.
using vcsn::detail::scc_tarjan_impl< Aut >::component_t = detail::component_t<Aut> |
using vcsn::detail::scc_tarjan_impl< Aut >::components_t = detail::components_t<Aut> |
using vcsn::detail::scc_tarjan_impl< Aut >::state_t = state_t_of<Aut> |
|
inline |
Definition at line 40 of file scc.hh.
References vcsn::detail::scc_tarjan_impl< Aut >::dfs(), vcsn::has(), and vcsn::detail::scc_tarjan_impl< Aut >::marked_.
|
inline |
Definition at line 47 of file scc.hh.
References vcsn::detail::scc_tarjan_impl< Aut >::components_.
Referenced by vcsn::scc().
|
inlineprivate |
Definition at line 53 of file scc.hh.
References vcsn::detail::scc_tarjan_impl< Aut >::components_, vcsn::detail::scc_tarjan_impl< Aut >::curr_comp_num_, vcsn::detail::scc_tarjan_impl< Aut >::curr_vertex_num_, vcsn::has(), vcsn::detail::scc_tarjan_impl< Aut >::low_, vcsn::detail::scc_tarjan_impl< Aut >::marked_, and vcsn::detail::scc_tarjan_impl< Aut >::stack_.
Referenced by vcsn::detail::scc_tarjan_impl< Aut >::scc_tarjan_impl().
|
private |
All compnents.
Definition at line 94 of file scc.hh.
Referenced by vcsn::detail::scc_tarjan_impl< Aut >::components(), and vcsn::detail::scc_tarjan_impl< Aut >::dfs().
|
private |
The current component number.
Definition at line 90 of file scc.hh.
Referenced by vcsn::detail::scc_tarjan_impl< Aut >::dfs().
|
private |
The current visited vertex.
Definition at line 92 of file scc.hh.
Referenced by vcsn::detail::scc_tarjan_impl< Aut >::dfs().
|
private |
low_[s] is minimum of vertex that it can go
Definition at line 98 of file scc.hh.
Referenced by vcsn::detail::scc_tarjan_impl< Aut >::dfs().
|
private |
List visited vertices.
Definition at line 96 of file scc.hh.
Referenced by vcsn::detail::scc_tarjan_impl< Aut >::dfs(), and vcsn::detail::scc_tarjan_impl< Aut >::scc_tarjan_impl().
|
private |
Contains list vertices same the component.
Definition at line 100 of file scc.hh.
Referenced by vcsn::detail::scc_tarjan_impl< Aut >::dfs().