Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
Aleph::BinTreeXt_Iterator< TreeType, Node, Key, Compare > Class Template Reference

Base iterator template for ranked binary search trees. More...

#include <tpl_binNodeXt.H>

Inheritance diagram for Aleph::BinTreeXt_Iterator< TreeType, Node, Key, Compare >:
[legend]

Public Member Functions

 BinTreeXt_Iterator () noexcept
 
 BinTreeXt_Iterator (const TreeType &__tree) noexcept
 
 BinTreeXt_Iterator (const TreeType &__tree, Node *__curr) noexcept
 
 BinTreeXt_Iterator (const TreeType &__tree, const size_t pos) noexcept
 
 BinTreeXt_Iterator (const BinTreeXt_Iterator &itor) noexcept
 
BinTreeXt_Iteratoroperator= (const BinTreeXt_Iterator &itor) noexcept
 
void reset_first () noexcept
 
void reset_last () noexcept
 
void end () noexcept
 
void reset_to_key (const Key &key) noexcept
 
void reset_to_node (Node *node) noexcept
 
void reset_to_pos (const size_t pos) noexcept
 
Nodeget_curr_ne () const noexcept
 
Nodeget_curr () const noexcept
 
size_t get_current_position () const
 
size_t get_pos () const
 
bool has_curr () const noexcept
 
void prev ()
 
void next_ne () noexcept
 
void next ()
 
Nodedel ()
 
bool operator== (const BinTreeXt_Iterator &itor) const noexcept
 
bool operator!= (const BinTreeXt_Iterator &itor) const
 

Protected Attributes

TreeTypetree_ptr
 
Nodecurr
 
int curr_pos
 

Static Protected Attributes

static constexpr int Pos_Not_Current = -1
 
static constexpr int Pos_Empty_Container = -2
 
static constexpr int Pos_Not_Updated = -3
 

Private Member Functions

bool is_container_empty () const noexcept
 
bool pos_updated () const noexcept
 
bool curr_updated () const noexcept
 
void update_pos () const noexcept
 
void update_curr () const noexcept
 

Detailed Description

template<class TreeType, class Node, typename Key, class Compare>
class Aleph::BinTreeXt_Iterator< TreeType, Node, Key, Compare >

Base iterator template for ranked binary search trees.

This template provides a common implementation for iterators on trees that support O(log n) select and position operations via subtree counters.

The TreeType must provide:

  • getRoot() returning Node*&
  • key_comp() returning Compare&
  • remove(const Key&) returning Node*
Template Parameters
TreeTypethe tree class type
Nodethe node type
Keythe key type
Comparecomparison functor

Definition at line 1037 of file tpl_binNodeXt.H.

Constructor & Destructor Documentation

◆ BinTreeXt_Iterator() [1/5]

template<class TreeType , class Node , typename Key , class Compare >
Aleph::BinTreeXt_Iterator< TreeType, Node, Key, Compare >::BinTreeXt_Iterator ( )
inlinenoexcept

Definition at line 1086 of file tpl_binNodeXt.H.

◆ BinTreeXt_Iterator() [2/5]

◆ BinTreeXt_Iterator() [3/5]

template<class TreeType , class Node , typename Key , class Compare >
Aleph::BinTreeXt_Iterator< TreeType, Node, Key, Compare >::BinTreeXt_Iterator ( const TreeType __tree,
Node __curr 
)
inlinenoexcept

Definition at line 1096 of file tpl_binNodeXt.H.

◆ BinTreeXt_Iterator() [4/5]

template<class TreeType , class Node , typename Key , class Compare >
Aleph::BinTreeXt_Iterator< TreeType, Node, Key, Compare >::BinTreeXt_Iterator ( const TreeType __tree,
const size_t  pos 
)
inlinenoexcept

Definition at line 1101 of file tpl_binNodeXt.H.

◆ BinTreeXt_Iterator() [5/5]

template<class TreeType , class Node , typename Key , class Compare >
Aleph::BinTreeXt_Iterator< TreeType, Node, Key, Compare >::BinTreeXt_Iterator ( const BinTreeXt_Iterator< TreeType, Node, Key, Compare > &  itor)
inlinenoexcept

Definition at line 1106 of file tpl_binNodeXt.H.

Member Function Documentation

◆ curr_updated()

◆ del()

◆ end()

template<class TreeType , class Node , typename Key , class Compare >
void Aleph::BinTreeXt_Iterator< TreeType, Node, Key, Compare >::end ( )
inlinenoexcept

Definition at line 1135 of file tpl_binNodeXt.H.

References put_itor_at_the_end().

◆ get_curr()

template<class TreeType , class Node , typename Key , class Compare >
Node * Aleph::BinTreeXt_Iterator< TreeType, Node, Key, Compare >::get_curr ( ) const
inlinenoexcept

◆ get_curr_ne()

◆ get_current_position()

◆ get_pos()

template<class TreeType , class Node , typename Key , class Compare >
size_t Aleph::BinTreeXt_Iterator< TreeType, Node, Key, Compare >::get_pos ( ) const
inline

◆ has_curr()

◆ is_container_empty()

◆ next()

◆ next_ne()

◆ operator!=()

template<class TreeType , class Node , typename Key , class Compare >
bool Aleph::BinTreeXt_Iterator< TreeType, Node, Key, Compare >::operator!= ( const BinTreeXt_Iterator< TreeType, Node, Key, Compare > &  itor) const
inline

Definition at line 1246 of file tpl_binNodeXt.H.

References Aleph::maps().

◆ operator=()

◆ operator==()

◆ pos_updated()

◆ prev()

◆ reset_first()

◆ reset_last()

◆ reset_to_key()

◆ reset_to_node()

◆ reset_to_pos()

◆ update_curr()

◆ update_pos()

Member Data Documentation

◆ curr

◆ curr_pos

◆ Pos_Empty_Container

◆ Pos_Not_Current

template<class TreeType , class Node , typename Key , class Compare >
constexpr int Aleph::BinTreeXt_Iterator< TreeType, Node, Key, Compare >::Pos_Not_Current = -1
staticconstexprprotected

◆ Pos_Not_Updated

◆ tree_ptr


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