Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
Aleph::Gen_Link_Cut_Tree< T, Monoid, LazyTag >::Node Struct Reference

Internal node of the Link-Cut Tree (opaque handle). More...

#include <tpl_link_cut_tree.H>

Collaboration diagram for Aleph::Gen_Link_Cut_Tree< T, Monoid, LazyTag >::Node:
[legend]

Private Types

using tag_type = typename LazyTag::tag_type
 

Private Member Functions

const Tget_val () const noexcept
 Return the raw stored value without forcing synchronization.
 
 Node ()
 
 Node (const T &v)
 
 Node (T &&v)
 

Private Attributes

Nodeleft = nullptr
 
Noderight = nullptr
 
Nodeparent = nullptr
 
bool rev = false
 
size_t sz = 1
 
T val
 
T agg
 
tag_type lazy = LazyTag::tag_identity()
 

Friends

class Gen_Link_Cut_Tree
 

Detailed Description

template<typename T = int, class Monoid = DefaultMonoid<T>, class LazyTag = NoLazyTag<T>>
struct Aleph::Gen_Link_Cut_Tree< T, Monoid, LazyTag >::Node

Internal node of the Link-Cut Tree (opaque handle).

Users interact with vertices using pointers to this structure.

Definition at line 372 of file tpl_link_cut_tree.H.

Member Typedef Documentation

◆ tag_type

template<typename T = int, class Monoid = DefaultMonoid<T>, class LazyTag = NoLazyTag<T>>
using Aleph::Gen_Link_Cut_Tree< T, Monoid, LazyTag >::Node::tag_type = typename LazyTag::tag_type
private

Definition at line 386 of file tpl_link_cut_tree.H.

Constructor & Destructor Documentation

◆ Node() [1/3]

template<typename T = int, class Monoid = DefaultMonoid<T>, class LazyTag = NoLazyTag<T>>
Aleph::Gen_Link_Cut_Tree< T, Monoid, LazyTag >::Node::Node ( )
inlineprivate

Definition at line 392 of file tpl_link_cut_tree.H.

◆ Node() [2/3]

template<typename T = int, class Monoid = DefaultMonoid<T>, class LazyTag = NoLazyTag<T>>
Aleph::Gen_Link_Cut_Tree< T, Monoid, LazyTag >::Node::Node ( const T v)
inlineexplicitprivate

Definition at line 393 of file tpl_link_cut_tree.H.

◆ Node() [3/3]

template<typename T = int, class Monoid = DefaultMonoid<T>, class LazyTag = NoLazyTag<T>>
Aleph::Gen_Link_Cut_Tree< T, Monoid, LazyTag >::Node::Node ( T &&  v)
inlineexplicitprivate

Definition at line 394 of file tpl_link_cut_tree.H.

Member Function Documentation

◆ get_val()

template<typename T = int, class Monoid = DefaultMonoid<T>, class LazyTag = NoLazyTag<T>>
const T & Aleph::Gen_Link_Cut_Tree< T, Monoid, LazyTag >::Node::get_val ( ) const
inlineprivatenoexcept

Return the raw stored value without forcing synchronization.

Definition at line 390 of file tpl_link_cut_tree.H.

References Aleph::Gen_Link_Cut_Tree< T, Monoid, LazyTag >::Node::val.

Friends And Related Symbol Documentation

◆ Gen_Link_Cut_Tree

template<typename T = int, class Monoid = DefaultMonoid<T>, class LazyTag = NoLazyTag<T>>
friend class Gen_Link_Cut_Tree
friend

Definition at line 374 of file tpl_link_cut_tree.H.

Member Data Documentation

◆ agg

template<typename T = int, class Monoid = DefaultMonoid<T>, class LazyTag = NoLazyTag<T>>
T Aleph::Gen_Link_Cut_Tree< T, Monoid, LazyTag >::Node::agg
private

◆ lazy

template<typename T = int, class Monoid = DefaultMonoid<T>, class LazyTag = NoLazyTag<T>>
tag_type Aleph::Gen_Link_Cut_Tree< T, Monoid, LazyTag >::Node::lazy = LazyTag::tag_identity()
private

Definition at line 387 of file tpl_link_cut_tree.H.

◆ left

◆ parent

◆ rev

template<typename T = int, class Monoid = DefaultMonoid<T>, class LazyTag = NoLazyTag<T>>
bool Aleph::Gen_Link_Cut_Tree< T, Monoid, LazyTag >::Node::rev = false
private

◆ right

◆ sz

template<typename T = int, class Monoid = DefaultMonoid<T>, class LazyTag = NoLazyTag<T>>
size_t Aleph::Gen_Link_Cut_Tree< T, Monoid, LazyTag >::Node::sz = 1
private

◆ val


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