|
Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
|
Preorder iterator over a tree rooted at a Tree_Node. More...
#include <tpl_tree_node.H>
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 |
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.
Definition at line 810 of file tpl_tree_node.H.
|
inlinenoexcept |
Definition at line 820 of file tpl_tree_node.H.
|
inline |
Definition at line 825 of file tpl_tree_node.H.
Definition at line 827 of file tpl_tree_node.H.
|
inlinenoexcept |
Definition at line 832 of file tpl_tree_node.H.
References Aleph::Tree_Node< T >::Iterator::swap().
|
inline |
Definition at line 892 of file tpl_tree_node.H.
References Aleph::Tree_Node< T >::Iterator::curr, Aleph::Tree_Node< T >::Iterator::pos, and Aleph::Tree_Node< T >::Iterator::s.
|
inline |
Definition at line 860 of file tpl_tree_node.H.
References ah_overflow_error_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::Tree_Node< T >::Iterator::get_curr_ne(), and Aleph::Tree_Node< T >::Iterator::has_curr().
|
inlinenoexcept |
Definition at line 855 of file tpl_tree_node.H.
References Aleph::Tree_Node< T >::Iterator::curr.
Referenced by Aleph::Tree_Node< T >::Iterator::get_curr().
|
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.
|
inlinenoexcept |
Definition at line 850 of file tpl_tree_node.H.
References Aleph::Tree_Node< T >::Iterator::curr.
Referenced by Aleph::Tree_Node< T >::Iterator::get_curr(), Aleph::Tree_Node< T >::Iterator::next(), TEST(), and TEST().
|
inline |
Definition at line 886 of file tpl_tree_node.H.
References ah_overflow_error_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::Tree_Node< T >::Iterator::has_curr(), and Aleph::Tree_Node< T >::Iterator::next_ne().
|
inlinenoexcept |
Definition at line 866 of file tpl_tree_node.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::Tree_Node< T >::Iterator::curr, Aleph::Tree_Node< T >::get_left_child(), Aleph::Tree_Node< T >::get_right_child(), Aleph::Tree_Node< T >::Iterator::pos, and Aleph::Tree_Node< T >::Iterator::s.
Referenced by Aleph::Tree_Node< T >::Iterator::next().
Definition at line 837 of file tpl_tree_node.H.
References Aleph::Tree_Node< T >::Iterator::swap().
|
inlinenoexcept |
Definition at line 843 of file tpl_tree_node.H.
References Aleph::Tree_Node< T >::Iterator::curr, Aleph::Tree_Node< T >::Iterator::pos, Aleph::Tree_Node< T >::Iterator::root, and Aleph::Tree_Node< T >::Iterator::s.
Referenced by TEST().
Definition at line 812 of file tpl_tree_node.H.
References Aleph::Tree_Node< T >::Iterator::curr, Aleph::Tree_Node< T >::Iterator::pos, Aleph::Tree_Node< T >::Iterator::root, and Aleph::Tree_Node< T >::Iterator::s.
Referenced by Aleph::Tree_Node< T >::Iterator::Iterator(), and Aleph::Tree_Node< T >::Iterator::operator=().
|
private |
Definition at line 805 of file tpl_tree_node.H.
Referenced by Aleph::Tree_Node< T >::Iterator::end(), Aleph::Tree_Node< T >::Iterator::get_curr_ne(), Aleph::Tree_Node< T >::Iterator::has_curr(), Aleph::Tree_Node< T >::Iterator::next_ne(), Aleph::Tree_Node< T >::Iterator::reset_first(), and Aleph::Tree_Node< T >::Iterator::swap().
|
private |
Definition at line 806 of file tpl_tree_node.H.
Referenced by Aleph::Tree_Node< T >::Iterator::end(), Aleph::Tree_Node< T >::Iterator::get_pos(), Aleph::Tree_Node< T >::Iterator::next_ne(), Aleph::Tree_Node< T >::Iterator::reset_first(), and Aleph::Tree_Node< T >::Iterator::swap().
|
private |
Definition at line 804 of file tpl_tree_node.H.
Referenced by Aleph::Tree_Node< T >::Iterator::reset_first(), and Aleph::Tree_Node< T >::Iterator::swap().
|
private |
Definition at line 807 of file tpl_tree_node.H.
Referenced by Aleph::Tree_Node< T >::Iterator::end(), Aleph::Tree_Node< T >::Iterator::next_ne(), Aleph::Tree_Node< T >::Iterator::reset_first(), and Aleph::Tree_Node< T >::Iterator::swap().