Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
Aleph::Tree_Node< T >::Iterator Class Reference

Preorder iterator over a tree rooted at a Tree_Node. More...

#include <tpl_tree_node.H>

Collaboration diagram for Aleph::Tree_Node< T >::Iterator:
[legend]

Public Types

using Item_Type = Tree_Node *
 

Public Member Functions

void swap (Iterator &it) noexcept
 
 Iterator (Tree_Node *r=nullptr) noexcept
 
 Iterator (Tree_Node &root)
 
 Iterator (const Iterator &it)
 
 Iterator (Iterator &&it) noexcept
 
Iterator & operator= (Iterator it)
 
void reset_first () noexcept
 
bool has_curr () const noexcept
 
Tree_Node * get_curr_ne () const noexcept
 
Tree_Node * get_curr () const
 
void next_ne () noexcept
 
void next ()
 
void end ()
 
size_t get_pos () const
 Return the current position of the iterator. Only valid if.
 

Private Attributes

Tree_Node * root = nullptr
 
Tree_Node * curr = nullptr
 
long pos = 0
 
DynListStack< Tree_Node * > s
 

Detailed Description

template<class T>
class Aleph::Tree_Node< T >::Iterator

Preorder iterator over a tree rooted at a Tree_Node.

The iterator owns an explicit stack of pending children and visits nodes in root-before-children order. It does not own or copy tree nodes, so the underlying tree must outlive the iterator.

Definition at line 802 of file tpl_tree_node.H.

Member Typedef Documentation

◆ Item_Type

template<class T >
using Aleph::Tree_Node< T >::Iterator::Item_Type = Tree_Node *

Definition at line 810 of file tpl_tree_node.H.

Constructor & Destructor Documentation

◆ Iterator() [1/4]

template<class T >
Aleph::Tree_Node< T >::Iterator::Iterator ( Tree_Node *  r = nullptr)
inlinenoexcept

Definition at line 820 of file tpl_tree_node.H.

◆ Iterator() [2/4]

template<class T >
Aleph::Tree_Node< T >::Iterator::Iterator ( Tree_Node &  root)
inline

Definition at line 825 of file tpl_tree_node.H.

◆ Iterator() [3/4]

template<class T >
Aleph::Tree_Node< T >::Iterator::Iterator ( const Iterator &  it)
inline

Definition at line 827 of file tpl_tree_node.H.

◆ Iterator() [4/4]

template<class T >
Aleph::Tree_Node< T >::Iterator::Iterator ( Iterator &&  it)
inlinenoexcept

Definition at line 832 of file tpl_tree_node.H.

References Aleph::Tree_Node< T >::Iterator::swap().

Member Function Documentation

◆ end()

◆ get_curr()

◆ get_curr_ne()

template<class T >
Tree_Node * Aleph::Tree_Node< T >::Iterator::get_curr_ne ( ) const
inlinenoexcept

◆ get_pos()

template<class T >
size_t Aleph::Tree_Node< T >::Iterator::get_pos ( ) const
inline

Return the current position of the iterator. Only valid if.

Definition at line 901 of file tpl_tree_node.H.

References Aleph::Tree_Node< T >::Iterator::pos.

◆ has_curr()

template<class T >
bool Aleph::Tree_Node< T >::Iterator::has_curr ( ) const
inlinenoexcept

◆ next()

◆ next_ne()

◆ operator=()

template<class T >
Iterator & Aleph::Tree_Node< T >::Iterator::operator= ( Iterator  it)
inline

Definition at line 837 of file tpl_tree_node.H.

References Aleph::Tree_Node< T >::Iterator::swap().

◆ reset_first()

template<class T >
void Aleph::Tree_Node< T >::Iterator::reset_first ( )
inlinenoexcept

◆ swap()

Member Data Documentation

◆ curr

◆ pos

◆ root

template<class T >
Tree_Node* Aleph::Tree_Node< T >::Iterator::root = nullptr
private

◆ s


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