#include <vgtl_tree.h>
Public Types | |
typedef _Node | node_type |
typedef _Tree_iterator< _Tp, _Tp &, _Tp *, container_type, children_iterator, node_type > | iterator |
typedef _Tree_iterator< _Tp, const _Tp &, const _Tp *, container_type, children_iterator, node_type > | const_iterator |
typedef _Tree_walker< _Tp, _Tp &, _Tp *, container_type, children_iterator, _Node > | iterative_walker |
typedef _Tree_walker< _Tp, const _Tp &, const _Tp *, container_type, children_iterator, _Node > | const_iterative_walker |
typedef std::reverse_iterator < const_iterator > | const_reverse_iterator |
typedef std::reverse_iterator < iterator > | reverse_iterator |
typedef _Iterator | children_iterator |
typedef __one_iterator< void * > | parents_iterator |
typedef _RTree_walker< _Tp, _Tp &, _Tp *, container_type, children_iterator, node_type > | walker |
typedef _RTree_walker< _Tp, const _Tp &, const _Tp *, container_type, children_iterator, node_type > | const_walker |
typedef _Tp | value_type |
typedef value_type * | pointer |
typedef const value_type * | const_pointer |
typedef value_type & | reference |
typedef const value_type & | const_reference |
typedef size_t | size_type |
typedef ptrdiff_t | difference_type |
Public Member Functions | |
__ITree (const allocator_type &__a=allocator_type()) | |
iterative_walker | root (walker_type wt=cw_pre_post, bool front_to_back=true, bool depth_first=true) |
const_iterative_walker | root (walker_type wt=cw_pre_post, bool front_to_back=true, bool depth_first=true) const |
iterative_walker | through () |
const_iterative_walker | through () const |
iterative_walker | begin (walker_type wt=cw_pre_post, bool front_to_back=true, bool depth_first=true) |
const_iterative_walker | begin (walker_type wt=cw_pre_post, bool front_to_back=true, bool depth_first=true) const |
iterative_walker | end (walker_type wt=cw_pre_post, bool front_to_back=true, bool depth_first=true) |
const_iterative_walker | end (walker_type wt=cw_pre_post, bool front_to_back=true, bool depth_first=true) const |
reverse_iterator | rbegin () |
reverse_iterator | rend () |
const_reverse_iterator | rbegin () const |
const_reverse_iterator | rend () const |
size_type | size () const |
reference | getroot () |
const_reference | getroot () const |
size_type | depth (const iterative_walker &__position) |
__ITree (size_type __n, const _Tp &__value, const allocator_type &__a=allocator_type()) | |
__ITree (size_type __n) | |
__ITree (const _Self &__x) | |
virtual | ~__ITree () |
_Self & | operator= (const _Self &__x) |
_Self & | operator= (_Node *__x) |
allocator_type | get_allocator () const |
bool | empty () const |
size_type | max_size () const |
void | swap (_Self &__x) |
void | insert_child (const __walker_base &__position, const _Tp &__x, const container_insert_arg &__It) |
void | insert_child (const __walker_base &__position, const container_insert_arg &__It) |
void | insert_children (const __walker_base &__position, size_type __n, const _Tp &__x, const children_iterator &__It) |
void | insert_subtree (const __walker_base &__position, _Self &__subtree, const children_iterator &__It) |
void | erase (const __walker_base &__position) |
_ITree_node< _Tp, _Ctr, _Iterator > * | erase_tree (const __walker_base &__position) |
bool | erase_child (const __walker_base &__position, const children_iterator &__It) |
_ITree_node< _Tp, _Ctr, _Iterator > * | erase_subtree (const __walker_base &__position, const children_iterator &__It) |
size_type | depth (const walker &__position) |
void | clear () |
void | clear_children () |
void | add_all_children (_Output_Iterator fi, _Node *_parent) |
Protected Member Functions | |
_ITree_node< _Tp, _Ctr, _Iterator > * | _C_create_node (const _Tp &__x) |
_ITree_node< _Tp, _Ctr, _Iterator > * | _C_create_node () |
_Node * | _C_get_node () |
void | _C_put_node (_Node *__p) |
void | _C_put_node (_Node *__p) |
Protected Attributes | |
_Node * | _C_node |
Friends | |
bool | operator==__VGTL_NULL_TMPL_ARGS (const __ITree &__x, const __ITree &__y) |
Definition at line 2045 of file vgtl_tree.h.
typedef _Iterator __Tree_t< _Tp , _Ctr , _Iterator , _Inserter , _ITree_node< _Tp, _Ctr, _Iterator > , _Alloc >::children_iterator [inherited] |
iterator for accessing the children
Reimplemented from _Tree_base< _Tp, _Ctr, _Iterator, _ITree_node< _Tp, _Ctr, _Iterator >, _Alloc >.
Definition at line 1563 of file vgtl_tree.h.
typedef _Tree_walker<_Tp,const _Tp&,const _Tp*,container_type,children_iterator,_Node> __ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc >::const_iterative_walker |
the const iterative walker
Definition at line 2065 of file vgtl_tree.h.
typedef _Tree_iterator<_Tp,const _Tp&,const _Tp*,container_type,children_iterator,node_type> __ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc >::const_iterator |
the const iterator
Reimplemented from __Tree_t< _Tp, _Ctr, _Iterator, _Inserter, _ITree_node< _Tp, _Ctr, _Iterator >, _Alloc >.
Definition at line 2060 of file vgtl_tree.h.
typedef const value_type* __Tree_t< _Tp , _Ctr , _Iterator , _Inserter , _ITree_node< _Tp, _Ctr, _Iterator > , _Alloc >::const_pointer [inherited] |
standard typedef
Definition at line 1578 of file vgtl_tree.h.
typedef const value_type& __Tree_t< _Tp , _Ctr , _Iterator , _Inserter , _ITree_node< _Tp, _Ctr, _Iterator > , _Alloc >::const_reference [inherited] |
standard typedef
Definition at line 1580 of file vgtl_tree.h.
typedef std::reverse_iterator<const_iterator> __ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc >::const_reverse_iterator |
the const reverse iterator
Reimplemented from __Tree_t< _Tp, _Ctr, _Iterator, _Inserter, _ITree_node< _Tp, _Ctr, _Iterator >, _Alloc >.
Definition at line 2069 of file vgtl_tree.h.
typedef _RTree_walker<_Tp ,const _Tp &,const _Tp *,container_type,children_iterator,node_type> __Tree_t< _Tp , _Ctr , _Iterator , _Inserter , _ITree_node< _Tp, _Ctr, _Iterator > , _Alloc >::const_walker [inherited] |
the (recursive) const walker
Definition at line 1614 of file vgtl_tree.h.
typedef ptrdiff_t __Tree_t< _Tp , _Ctr , _Iterator , _Inserter , _ITree_node< _Tp, _Ctr, _Iterator > , _Alloc >::difference_type [inherited] |
standard typedef
Definition at line 1582 of file vgtl_tree.h.
typedef _Tree_walker<_Tp,_Tp&,_Tp*,container_type,children_iterator,_Node> __ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc >::iterative_walker |
the iterative walker
Definition at line 2063 of file vgtl_tree.h.
typedef _Tree_iterator<_Tp,_Tp&,_Tp*,container_type,children_iterator,node_type> __ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc >::iterator |
the iterator
Reimplemented from __Tree_t< _Tp, _Ctr, _Iterator, _Inserter, _ITree_node< _Tp, _Ctr, _Iterator >, _Alloc >.
Definition at line 2058 of file vgtl_tree.h.
typedef _Node __ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc >::node_type |
standard typedef
Reimplemented from __Tree_t< _Tp, _Ctr, _Iterator, _Inserter, _ITree_node< _Tp, _Ctr, _Iterator >, _Alloc >.
Definition at line 2055 of file vgtl_tree.h.
typedef __one_iterator<void *> __Tree_t< _Tp , _Ctr , _Iterator , _Inserter , _ITree_node< _Tp, _Ctr, _Iterator > , _Alloc >::parents_iterator [inherited] |
iterator for accessing the parents
Reimplemented from _Tree_base< _Tp, _Ctr, _Iterator, _ITree_node< _Tp, _Ctr, _Iterator >, _Alloc >.
Definition at line 1564 of file vgtl_tree.h.
typedef value_type* __Tree_t< _Tp , _Ctr , _Iterator , _Inserter , _ITree_node< _Tp, _Ctr, _Iterator > , _Alloc >::pointer [inherited] |
standard typedef
Definition at line 1577 of file vgtl_tree.h.
typedef value_type& __Tree_t< _Tp , _Ctr , _Iterator , _Inserter , _ITree_node< _Tp, _Ctr, _Iterator > , _Alloc >::reference [inherited] |
standard typedef
Definition at line 1579 of file vgtl_tree.h.
typedef std::reverse_iterator<iterator> __ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc >::reverse_iterator |
the reverse iterator
Reimplemented from __Tree_t< _Tp, _Ctr, _Iterator, _Inserter, _ITree_node< _Tp, _Ctr, _Iterator >, _Alloc >.
Definition at line 2071 of file vgtl_tree.h.
typedef size_t __Tree_t< _Tp , _Ctr , _Iterator , _Inserter , _ITree_node< _Tp, _Ctr, _Iterator > , _Alloc >::size_type [inherited] |
standard typedef
Definition at line 1581 of file vgtl_tree.h.
typedef _Tp __Tree_t< _Tp , _Ctr , _Iterator , _Inserter , _ITree_node< _Tp, _Ctr, _Iterator > , _Alloc >::value_type [inherited] |
standard typedef
Definition at line 1575 of file vgtl_tree.h.
typedef _RTree_walker<_Tp ,_Tp &,_Tp *,container_type,children_iterator,node_type> __Tree_t< _Tp , _Ctr , _Iterator , _Inserter , _ITree_node< _Tp, _Ctr, _Iterator > , _Alloc >::walker [inherited] |
the (recursive) walker
Definition at line 1612 of file vgtl_tree.h.
__ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc >::__ITree | ( | const allocator_type & | __a = allocator_type() |
) | [inline, explicit] |
standard constructor
Definition at line 2092 of file vgtl_tree.h.
__ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc >::__ITree | ( | size_type | __n, | |
const _Tp & | __value, | |||
const allocator_type & | __a = allocator_type() | |||
) | [inline] |
construct a tree containing __n
nodes with value __value
at the root spot.
Definition at line 2184 of file vgtl_tree.h.
__ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc >::__ITree | ( | size_type | __n | ) | [inline, explicit] |
construct a tree containing __n
nodes with default value at the root spot.
Definition at line 2191 of file vgtl_tree.h.
__ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc >::__ITree | ( | const _Self & | __x | ) | [inline] |
copy constructor
Definition at line 2196 of file vgtl_tree.h.
virtual __ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc >::~__ITree | ( | ) | [inline, virtual] |
standard destructor
Definition at line 2199 of file vgtl_tree.h.
_ITree_node< _Tp, _Ctr, _Iterator > * __Tree_t< _Tp , _Ctr , _Iterator , _Inserter , _ITree_node< _Tp, _Ctr, _Iterator > , _Alloc >::_C_create_node | ( | ) | [inline, protected, inherited] |
construct a new tree node containing default data
Definition at line 1641 of file vgtl_tree.h.
_ITree_node< _Tp, _Ctr, _Iterator > * __Tree_t< _Tp , _Ctr , _Iterator , _Inserter , _ITree_node< _Tp, _Ctr, _Iterator > , _Alloc >::_C_create_node | ( | const _Tp & | __x | ) | [inline, protected, inherited] |
construct a new tree node containing data __x
Definition at line 1629 of file vgtl_tree.h.
_Node* _Tree_alloc_base< _Tp , _Ctr , _Iterator , _Node , _IsStatic >::_C_get_node | ( | ) | [inline, protected, inherited] |
allocate a new node
Definition at line 1375 of file vgtl_tree.h.
void _Tree_alloc_base< _Tp, _Ctr, _TI, _Allocator, _IsStatic >::_C_put_node | ( | _Node * | __p | ) | [inline, protected, inherited] |
deallocate a node
Definition at line 1378 of file vgtl_tree.h.
void _Tree_alloc_base< _Tp , _Ctr , _Iterator , _Node , _IsStatic >::_C_put_node | ( | _Node * | __p | ) | [inline, protected, inherited] |
deallocate a node
Definition at line 1378 of file vgtl_tree.h.
void _Tree_base< _Tp , _Ctr , _Iterator , _ITree_node< _Tp, _Ctr, _Iterator > >::add_all_children | ( | _Output_Iterator | fi, | |
_Node * | _parent | |||
) | [inline, inherited] |
add all children to the parent _parent
. fi
is a iterator to the children container of the parent
const_iterative_walker __ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc >::begin | ( | walker_type | wt = cw_pre_post , |
|
bool | front_to_back = true , |
|||
bool | depth_first = true | |||
) | const [inline] |
the const walker to the first node of the complete walk
Definition at line 2129 of file vgtl_tree.h.
iterative_walker __ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc >::begin | ( | walker_type | wt = cw_pre_post , |
|
bool | front_to_back = true , |
|||
bool | depth_first = true | |||
) | [inline] |
the walker to the first node of the complete walk
Definition at line 2122 of file vgtl_tree.h.
void __Tree_t< _Tp , _Ctr , _Iterator , _Inserter , _ITree_node< _Tp, _Ctr, _Iterator > , _Alloc >::clear | ( | ) | [inline, inherited] |
empty the tree
Reimplemented from _Tree_base< _Tp, _Ctr, _Iterator, _ITree_node< _Tp, _Ctr, _Iterator >, _Alloc >.
Definition at line 1817 of file vgtl_tree.h.
void _Tree_base< _Tp , _Ctr , _Iterator , _ITree_node< _Tp, _Ctr, _Iterator > >::clear_children | ( | ) | [inline, inherited] |
clear all children of the root node
Definition at line 1466 of file vgtl_tree.h.
size_type __Tree_t< _Tp , _Ctr , _Iterator , _Inserter , _ITree_node< _Tp, _Ctr, _Iterator > , _Alloc >::depth | ( | const walker & | __position | ) | [inline, inherited] |
return the depth of node __position
in the tree
Definition at line 1805 of file vgtl_tree.h.
size_type __ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc >::depth | ( | const iterative_walker & | __position | ) | [inline] |
return the depth of this __position
in the tree
Definition at line 2177 of file vgtl_tree.h.
bool __Tree_t< _Tp , _Ctr , _Iterator , _Inserter , _ITree_node< _Tp, _Ctr, _Iterator > , _Alloc >::empty | ( | ) | const [inline, inherited] |
is the tree empty?
Definition at line 1657 of file vgtl_tree.h.
const_iterative_walker __ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc >::end | ( | walker_type | wt = cw_pre_post , |
|
bool | front_to_back = true , |
|||
bool | depth_first = true | |||
) | const [inline] |
the const walker beyond the last node of the walk
Definition at line 2143 of file vgtl_tree.h.
iterative_walker __ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc >::end | ( | walker_type | wt = cw_pre_post , |
|
bool | front_to_back = true , |
|||
bool | depth_first = true | |||
) | [inline] |
the walker beyond the last node of the walk
Definition at line 2137 of file vgtl_tree.h.
void __Tree_t< _Tp , _Ctr , _Iterator , _Inserter , _ITree_node< _Tp, _Ctr, _Iterator > , _Alloc >::erase | ( | const __walker_base & | __position | ) | [inline, inherited] |
erase the node at position __position
.
Definition at line 1713 of file vgtl_tree.h.
bool __Tree_t< _Tp , _Ctr , _Iterator , _Inserter , _ITree_node< _Tp, _Ctr, _Iterator > , _Alloc >::erase_child | ( | const __walker_base & | __position, | |
const children_iterator & | __It | |||
) | [inline, inherited] |
erase the (leaf) child __It
of node __position
. This works if and only if the child is a leaf.
Definition at line 1770 of file vgtl_tree.h.
_ITree_node< _Tp, _Ctr, _Iterator > * __Tree_t< _Tp , _Ctr , _Iterator , _Inserter , _ITree_node< _Tp, _Ctr, _Iterator > , _Alloc >::erase_subtree | ( | const __walker_base & | __position, | |
const children_iterator & | __It | |||
) | [inline, inherited] |
erase the subtree position __position
, whose top node is the child at children_iterator position __It
, and return its top node.
Definition at line 1790 of file vgtl_tree.h.
_ITree_node< _Tp, _Ctr, _Iterator > * __Tree_t< _Tp , _Ctr , _Iterator , _Inserter , _ITree_node< _Tp, _Ctr, _Iterator > , _Alloc >::erase_tree | ( | const __walker_base & | __position | ) | [inline, inherited] |
erase the subtree starting at position __position
, and return its top node.
Definition at line 1743 of file vgtl_tree.h.
allocator_type __Tree_t< _Tp , _Ctr , _Iterator , _Inserter , _ITree_node< _Tp, _Ctr, _Iterator > , _Alloc >::get_allocator | ( | ) | const [inline, inherited] |
construct an allocator object
Reimplemented from _Tree_alloc_base< _Tp, _Ctr, _TI, _Allocator, _IsStatic >.
Definition at line 1587 of file vgtl_tree.h.
const_reference __ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc >::getroot | ( | ) | const [inline] |
get a const reference to the virtual root node
Definition at line 2174 of file vgtl_tree.h.
reference __ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc >::getroot | ( | ) | [inline] |
get a reference to the virtual root node
Definition at line 2172 of file vgtl_tree.h.
void __Tree_t< _Tp , _Ctr , _Iterator , _Inserter , _ITree_node< _Tp, _Ctr, _Iterator > , _Alloc >::insert_child | ( | const __walker_base & | __position, | |
const container_insert_arg & | __It | |||
) | [inline, inherited] |
add a child below __position
with default data, at the __It
position in the __position
- node's children container
Definition at line 1676 of file vgtl_tree.h.
void __Tree_t< _Tp , _Ctr , _Iterator , _Inserter , _ITree_node< _Tp, _Ctr, _Iterator > , _Alloc >::insert_child | ( | const __walker_base & | __position, | |
const _Tp & | __x, | |||
const container_insert_arg & | __It | |||
) | [inline, inherited] |
add a child below __position
with data __x
, at the __It
position in the __position
- node's children container
Definition at line 1668 of file vgtl_tree.h.
void __Tree_t< _Tp , _Ctr , _Iterator , _Inserter , _ITree_node< _Tp, _Ctr, _Iterator > , _Alloc >::insert_children | ( | const __walker_base & | __position, | |
size_type | __n, | |||
const _Tp & | __x, | |||
const children_iterator & | __It | |||
) | [inline, inherited] |
add __n
children below __position
with data __x
, after the __It
position in the __position
- node's children container
Definition at line 1682 of file vgtl_tree.h.
void __Tree_t< _Tp , _Ctr , _Iterator , _Inserter , _ITree_node< _Tp, _Ctr, _Iterator > , _Alloc >::insert_subtree | ( | const __walker_base & | __position, | |
_Self & | __subtree, | |||
const children_iterator & | __It | |||
) | [inline, inherited] |
add a complete subtree __subtree
below position __position
and children iterator position __It
.
Definition at line 1702 of file vgtl_tree.h.
size_type __Tree_t< _Tp , _Ctr , _Iterator , _Inserter , _ITree_node< _Tp, _Ctr, _Iterator > , _Alloc >::max_size | ( | ) | const [inline, inherited] |
return the maximum possible size of the tree (theor. infinity)
Definition at line 1660 of file vgtl_tree.h.
_Self& __ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc >::operator= | ( | _Node * | __x | ) | [inline] |
assign a tree from one node -> make this node the root node. This is useful for making trees out of erased subtrees.
Definition at line 2208 of file vgtl_tree.h.
_Self& __ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc >::operator= | ( | const _Self & | __x | ) |
standard assignment operator
const_reverse_iterator __ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc >::rbegin | ( | ) | const [inline] |
return a const reverse iterator to the first node in walk
Definition at line 2158 of file vgtl_tree.h.
reverse_iterator __ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc >::rbegin | ( | ) | [inline] |
return a reverse iterator to the first node in walk
Definition at line 2151 of file vgtl_tree.h.
const_reverse_iterator __ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc >::rend | ( | ) | const [inline] |
return a const reverse iterator beyond the last node in walk
Definition at line 2161 of file vgtl_tree.h.
reverse_iterator __ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc >::rend | ( | ) | [inline] |
return a reverse iterator beyond the last node in walk
Definition at line 2154 of file vgtl_tree.h.
const_iterative_walker __ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc >::root | ( | walker_type | wt = cw_pre_post , |
|
bool | front_to_back = true , |
|||
bool | depth_first = true | |||
) | const [inline] |
return a const iterative walker of type wt
to the ground node
Definition at line 2106 of file vgtl_tree.h.
iterative_walker __ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc >::root | ( | walker_type | wt = cw_pre_post , |
|
bool | front_to_back = true , |
|||
bool | depth_first = true | |||
) | [inline] |
return an iterative walker of type wt
to the ground node
Definition at line 2099 of file vgtl_tree.h.
size_type __ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc >::size | ( | ) | const [inline] |
return the size of the tree (# of nodes)
Definition at line 2165 of file vgtl_tree.h.
void __Tree_t< _Tp , _Ctr , _Iterator , _Inserter , _ITree_node< _Tp, _Ctr, _Iterator > , _Alloc >::swap | ( | _Self & | __x | ) | [inline, inherited] |
swap two trees
Definition at line 1663 of file vgtl_tree.h.
const_iterative_walker __ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc >::through | ( | ) | const [inline] |
the const walker beyond the complete walk
Definition at line 2117 of file vgtl_tree.h.
iterative_walker __ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc >::through | ( | ) | [inline] |
the walker beyond the complete walk
Definition at line 2113 of file vgtl_tree.h.
bool operator==__VGTL_NULL_TMPL_ARGS | ( | const __ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc > & | __x, | |
const __ITree< _Tp, _Ctr, _Iterator, _Inserter, _Alloc > & | __y | |||
) | [friend] |
comparison operator
_Node* _Tree_alloc_base< _Tp , _Ctr , _Iterator , _Node , _IsStatic >::_C_node [protected, inherited] |
This is the node
Definition at line 1387 of file vgtl_tree.h.