Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
Aleph::lca_detail::Rooted_Tree_Data< GT, SA > Class Template Reference

#include <LCA.H>

Inheritance diagram for Aleph::lca_detail::Rooted_Tree_Data< GT, SA >:
[legend]
Collaboration diagram for Aleph::lca_detail::Rooted_Tree_Data< GT, SA >:
[legend]

Public Types

using Node = typename GT::Node
 
using Arc = typename GT::Arc
 

Public Member Functions

 Rooted_Tree_Data (const GT &g, Node *root, SA sa=SA())
 
size_t size () const noexcept
 
bool is_empty () const noexcept
 
Node * root () const noexcept
 
size_t root_id () const noexcept
 
const Array< Node * > & id_to_node () const noexcept
 
const Array< size_t > & parent () const noexcept
 
const Array< size_t > & depth () const noexcept
 
const Array< size_t > & tin () const noexcept
 
const Array< size_t > & tout () const noexcept
 
const Array< size_t > & first () const noexcept
 
const Array< size_t > & euler () const noexcept
 
size_t euler_size () const noexcept
 
size_t id_of (const Node *node) const
 
Node * node_of (const size_t id) const
 
void validate_id (const size_t id, const char *where) const
 
bool is_ancestor (const size_t u, const size_t v) const
 

Static Public Attributes

static constexpr size_t NONE = std::numeric_limits<size_t>::max()
 

Private Types

using Pair_Key = std::pair< size_t, size_t >
 

Private Member Functions

void index_nodes ()
 
void build_simple_adjacency ()
 
void build_dfs_data ()
 
void check_id (const size_t id, const char *where) const
 

Static Private Member Functions

static Pair_Key normalize_pair (size_t u, size_t v) noexcept
 

Private Attributes

const GT * graph_ = nullptr
 
SA sa_
 
Node * root_ = nullptr
 
size_t root_id_ = NONE
 
size_t n_ = 0
 
Array< Node * > id_to_node_
 
MapOLhash< Node *, size_t > node_to_id_
 
Array< Array< size_t > > adjacency_
 
Array< size_t > parent_
 
Array< size_t > depth_
 
Array< size_t > tin_
 
Array< size_t > tout_
 
Array< size_t > first_
 
Array< size_t > euler_
 
size_t euler_size_ = 0
 

Detailed Description

template<AlephGraph GT, ArcFilter< GT > SA>
class Aleph::lca_detail::Rooted_Tree_Data< GT, SA >

Definition at line 126 of file LCA.H.

Member Typedef Documentation

◆ Arc

template<AlephGraph GT, ArcFilter< GT > SA>
using Aleph::lca_detail::Rooted_Tree_Data< GT, SA >::Arc = typename GT::Arc

Definition at line 130 of file LCA.H.

◆ Node

template<AlephGraph GT, ArcFilter< GT > SA>
using Aleph::lca_detail::Rooted_Tree_Data< GT, SA >::Node = typename GT::Node

Definition at line 129 of file LCA.H.

◆ Pair_Key

template<AlephGraph GT, ArcFilter< GT > SA>
using Aleph::lca_detail::Rooted_Tree_Data< GT, SA >::Pair_Key = std::pair<size_t, size_t>
private

Definition at line 135 of file LCA.H.

Constructor & Destructor Documentation

◆ Rooted_Tree_Data()

template<AlephGraph GT, ArcFilter< GT > SA>
Aleph::lca_detail::Rooted_Tree_Data< GT, SA >::Rooted_Tree_Data ( const GT &  g,
Node *  root,
SA  sa = SA() 
)
inline

Member Function Documentation

◆ build_dfs_data()

◆ build_simple_adjacency()

◆ check_id()

◆ depth()

◆ euler()

template<AlephGraph GT, ArcFilter< GT > SA>
const Array< size_t > & Aleph::lca_detail::Rooted_Tree_Data< GT, SA >::euler ( ) const
inlinenoexcept

◆ euler_size()

template<AlephGraph GT, ArcFilter< GT > SA>
size_t Aleph::lca_detail::Rooted_Tree_Data< GT, SA >::euler_size ( ) const
inlinenoexcept

◆ first()

template<AlephGraph GT, ArcFilter< GT > SA>
const Array< size_t > & Aleph::lca_detail::Rooted_Tree_Data< GT, SA >::first ( ) const
inlinenoexcept

◆ id_of()

◆ id_to_node()

template<AlephGraph GT, ArcFilter< GT > SA>
const Array< Node * > & Aleph::lca_detail::Rooted_Tree_Data< GT, SA >::id_to_node ( ) const
inlinenoexcept

Definition at line 364 of file LCA.H.

References Aleph::lca_detail::Rooted_Tree_Data< GT, SA >::id_to_node_.

◆ index_nodes()

◆ is_ancestor()

◆ is_empty()

template<AlephGraph GT, ArcFilter< GT > SA>
bool Aleph::lca_detail::Rooted_Tree_Data< GT, SA >::is_empty ( ) const
inlinenoexcept

◆ node_of()

◆ normalize_pair()

template<AlephGraph GT, ArcFilter< GT > SA>
static Pair_Key Aleph::lca_detail::Rooted_Tree_Data< GT, SA >::normalize_pair ( size_t  u,
size_t  v 
)
inlinestaticprivatenoexcept

◆ parent()

◆ root()

template<AlephGraph GT, ArcFilter< GT > SA>
Node * Aleph::lca_detail::Rooted_Tree_Data< GT, SA >::root ( ) const
inlinenoexcept

◆ root_id()

template<AlephGraph GT, ArcFilter< GT > SA>
size_t Aleph::lca_detail::Rooted_Tree_Data< GT, SA >::root_id ( ) const
inlinenoexcept

◆ size()

template<AlephGraph GT, ArcFilter< GT > SA>
size_t Aleph::lca_detail::Rooted_Tree_Data< GT, SA >::size ( ) const
inlinenoexcept

◆ tin()

template<AlephGraph GT, ArcFilter< GT > SA>
const Array< size_t > & Aleph::lca_detail::Rooted_Tree_Data< GT, SA >::tin ( ) const
inlinenoexcept

Definition at line 376 of file LCA.H.

References Aleph::lca_detail::Rooted_Tree_Data< GT, SA >::tin_.

◆ tout()

template<AlephGraph GT, ArcFilter< GT > SA>
const Array< size_t > & Aleph::lca_detail::Rooted_Tree_Data< GT, SA >::tout ( ) const
inlinenoexcept

Definition at line 380 of file LCA.H.

References Aleph::lca_detail::Rooted_Tree_Data< GT, SA >::tout_.

◆ validate_id()

Member Data Documentation

◆ adjacency_

template<AlephGraph GT, ArcFilter< GT > SA>
Array<Array<size_t> > Aleph::lca_detail::Rooted_Tree_Data< GT, SA >::adjacency_
private

◆ depth_

template<AlephGraph GT, ArcFilter< GT > SA>
Array<size_t> Aleph::lca_detail::Rooted_Tree_Data< GT, SA >::depth_
private

◆ euler_

template<AlephGraph GT, ArcFilter< GT > SA>
Array<size_t> Aleph::lca_detail::Rooted_Tree_Data< GT, SA >::euler_
private

◆ euler_size_

template<AlephGraph GT, ArcFilter< GT > SA>
size_t Aleph::lca_detail::Rooted_Tree_Data< GT, SA >::euler_size_ = 0
private

◆ first_

template<AlephGraph GT, ArcFilter< GT > SA>
Array<size_t> Aleph::lca_detail::Rooted_Tree_Data< GT, SA >::first_
private

◆ graph_

template<AlephGraph GT, ArcFilter< GT > SA>
const GT* Aleph::lca_detail::Rooted_Tree_Data< GT, SA >::graph_ = nullptr
private

◆ id_to_node_

◆ n_

◆ node_to_id_

◆ NONE

template<AlephGraph GT, ArcFilter< GT > SA>
constexpr size_t Aleph::lca_detail::Rooted_Tree_Data< GT, SA >::NONE = std::numeric_limits<size_t>::max()
staticconstexpr

◆ parent_

template<AlephGraph GT, ArcFilter< GT > SA>
Array<size_t> Aleph::lca_detail::Rooted_Tree_Data< GT, SA >::parent_
private

◆ root_

template<AlephGraph GT, ArcFilter< GT > SA>
Node* Aleph::lca_detail::Rooted_Tree_Data< GT, SA >::root_ = nullptr
private

◆ root_id_

◆ sa_

template<AlephGraph GT, ArcFilter< GT > SA>
SA Aleph::lca_detail::Rooted_Tree_Data< GT, SA >::sa_
private

◆ tin_

◆ tout_


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