#include <tree.h>
Definition at line 161 of file tree.h.
Public Member Functions | |
pre_order_iterator () | |
pre_order_iterator (tree_node *) | |
pre_order_iterator (const iterator_base &) | |
pre_order_iterator (const sibling_iterator &) | |
bool | operator== (const pre_order_iterator &) const |
bool | operator!= (const pre_order_iterator &) const |
pre_order_iterator & | operator++ () |
pre_order_iterator & | operator-- () |
pre_order_iterator | operator++ (int) |
pre_order_iterator | operator-- (int) |
pre_order_iterator & | operator+= (unsigned int) |
pre_order_iterator & | operator-= (unsigned int) |
tree< T, tree_node_allocator >::pre_order_iterator::pre_order_iterator | ( | ) | [inline] |
tree< T, tree_node_allocator >::pre_order_iterator::pre_order_iterator | ( | const iterator_base & | other | ) | [inline] |
tree< T, tree_node_allocator >::pre_order_iterator::pre_order_iterator | ( | const sibling_iterator & | other | ) | [inline] |
Definition at line 1940 of file tree.h.
References tree< T, tree_node_allocator >::iterator_base::node, tree< T, tree_node_allocator >::sibling_iterator::parent_, tree< T, tree_node_allocator >::sibling_iterator::range_last(), and tree< T, tree_node_allocator >::iterator_base::skip_children().
01941 : iterator_base(other.node) 01942 { 01943 if(this->node==0) { 01944 if(other.range_last()!=0) 01945 this->node=other.range_last(); 01946 else 01947 this->node=other.parent_; 01948 this->skip_children(); 01949 ++(*this); 01950 } 01951 }
bool tree< T, tree_node_allocator >::pre_order_iterator::operator== | ( | const pre_order_iterator & | other | ) | const [inline] |
Definition at line 1844 of file tree.h.
References tree< T, tree_node_allocator >::iterator_base::node.
bool tree< T, tree_node_allocator >::pre_order_iterator::operator!= | ( | const pre_order_iterator & | other | ) | const [inline] |
Definition at line 1837 of file tree.h.
References tree< T, tree_node_allocator >::iterator_base::node.
tree< T, tree_node_allocator >::pre_order_iterator & tree< T, tree_node_allocator >::pre_order_iterator::operator++ | ( | ) | [inline] |
Definition at line 1954 of file tree.h.
References tree_node_< T >::first_child, tree_node_< T >::next_sibling, tree< T, tree_node_allocator >::iterator_base::node, tree_node_< T >::parent, and tree< T, tree_node_allocator >::iterator_base::skip_current_children_.
01955 { 01956 assert(this->node!=0); 01957 if(!this->skip_current_children_ && this->node->first_child != 0) { 01958 this->node=this->node->first_child; 01959 } 01960 else { 01961 this->skip_current_children_=false; 01962 while(this->node->next_sibling==0) { 01963 this->node=this->node->parent; 01964 if(this->node==0) 01965 return *this; 01966 } 01967 this->node=this->node->next_sibling; 01968 } 01969 return *this; 01970 }
tree< T, tree_node_allocator >::pre_order_iterator & tree< T, tree_node_allocator >::pre_order_iterator::operator-- | ( | ) | [inline] |
Definition at line 1973 of file tree.h.
References tree_node_< T >::last_child, tree< T, tree_node_allocator >::iterator_base::node, tree_node_< T >::parent, and tree_node_< T >::prev_sibling.
01974 { 01975 assert(this->node!=0); 01976 if(this->node->prev_sibling) { 01977 this->node=this->node->prev_sibling; 01978 while(this->node->last_child) 01979 this->node=this->node->last_child; 01980 } 01981 else { 01982 this->node=this->node->parent; 01983 if(this->node==0) 01984 return *this; 01985 } 01986 return *this; 01987 }
tree< T, tree_node_allocator >::pre_order_iterator tree< T, tree_node_allocator >::pre_order_iterator::operator++ | ( | int | n | ) | [inline] |
Definition at line 1990 of file tree.h.
01991 { 01992 pre_order_iterator copy = *this; 01993 ++(*this); 01994 return copy; 01995 }
tree< T, tree_node_allocator >::pre_order_iterator tree< T, tree_node_allocator >::pre_order_iterator::operator-- | ( | int | n | ) | [inline] |
Definition at line 1998 of file tree.h.
01999 { 02000 pre_order_iterator copy = *this; 02001 --(*this); 02002 return copy; 02003 }
tree< T, tree_node_allocator >::pre_order_iterator & tree< T, tree_node_allocator >::pre_order_iterator::operator+= | ( | unsigned int | num | ) | [inline] |
tree< T, tree_node_allocator >::pre_order_iterator & tree< T, tree_node_allocator >::pre_order_iterator::operator-= | ( | unsigned int | num | ) | [inline] |