SyTen
syten::BinaryTree::Tree< T > Class Template Reference

The binary tree structure, versioned via boost_version_Tree. More...

#include <binary_tree.h>

+ Inheritance diagram for syten::BinaryTree::Tree< T >:
+ Collaboration diagram for syten::BinaryTree::Tree< T >:

Public Types

typedef BinaryTree::Node< ValueNode
 Type of nodes. More...
 
typedef NodePtr
 Type of pointers to nodes. More...
 
typedef T Value
 Type of values contained in the tree. More...
 

Public Member Functions

MemoryUsage::MemorySize allocSize () const
 Returns the total size in bytes allocated for this tree. More...
 
Treeoperator= (Tree &&other)
 Move assignment operator. More...
 
Treeoperator= (Tree const &other)
 Copy assignment operator. More...
 
template<class Archive >
void serialize (Archive &ar, unsigned int const in_version)
 Boost serialisation, recursive as usual. More...
 
 Tree ()
 Default ctor with empty root node. More...
 
template<typename... Args>
 Tree (Args... args)
 Standard ctor. More...
 
 Tree (Tree &&other)
 Move ctor. More...
 
 Tree (Tree const &other)
 Copy ctor (deep-copies) More...
 
 ~Tree ()
 Dtor. More...
 
Node access functions
Nodego_down (Node *ptr, Index steps) const
 Returns the steps-th child of *ptr, provided that there are no branches. More...
 
Nodeoperator[] (std::string const &coordinate) const
 Returns a pointer to the node specified by coordinate. More...
 
Ptr operator[] (std::array< Index, 2 > const &coordinate) const
 Returns a pointer to the node specified by the two-index coordinate. More...
 
Ptr operator[] (std::initializer_list< Index > list) const
 Returns a pointer to the node specified by the two-index coordinate. More...
 
Ptr last_fork (Ptr leaf) const
 Returns a pointer to the last fork on the way to the specified node. More...
 
Ptr first_nonfork (Ptr leaf) const
 Returns a pointer to the first non-forking node in the non-forking branch that leads to leaf (i.e. one step further towards leaf than last_fork(leaf) More...
 
Ptr leaf (Index const which) const
 Returns a pointer to the which-th leaf of the tree. More...
 
Visitors
template<typename Func >
std::result_of< Func(Ptr)>::type visit_bottom (Func &&f, typename std::result_of< Func(Ptr)>::type initial, IterFirst const dir=IterFirst::Left)
 Visits each node, starting at the left or right bottommost node. More...
 
template<typename Func >
std::result_of< Func(constPtr)>::type visit_bottom (Func &&f, typename std::result_of< Func(const Ptr)>::type initial, IterFirst const dir=IterFirst::Left) const
 Visits each node, starting at the left or right bottommost node for const trees. More...
 
template<typename Func >
void visit_bottom (Func &&f, IterFirst const dir=IterFirst::Left)
 Visits each node, starting at the left or right bottommost node. More...
 
template<typename Func >
void visit_bottom (Func &&f, IterFirst const dir=IterFirst::Left) const
 Visits each node, starting at the left or right bottommost node for const trees. More...
 
template<typename Func >
std::result_of< Func(Value &)>::type visit_bottom (Func &&f, typename std::result_of< Func(Value &)>::type initial, IterFirst const dir=IterFirst::Left)
 Visits each node, starting at the left or right bottommost node. More...
 
template<typename Func >
std::result_of< Func(Valueconst &)>::type visit_bottom (Func &&f, typename std::result_of< Func(Value const &)>::type initial, IterFirst const dir=IterFirst::Left) const
 Visits each node, starting at the left or right bottommost node for const trees. More...
 
template<typename Func >
std::result_of< Func(Ptr)>::type visit_top (Func &&f, typename std::result_of< Func(Ptr)>::type initial, IterFirst const dir=IterFirst::Left)
 Visits each node, starting at the root node. More...
 
template<typename Func >
std::result_of< Func(constPtr)>::type visit_top (Func &&f, typename std::result_of< Func(Ptr)>::type initial, IterFirst const dir=IterFirst::Left) const
 Visits each node, starting at the root node for const trees. More...
 
template<typename Func >
void visit_top (Func &&f, IterFirst const dir=IterFirst::Left)
 Visits each node, starting at the root node. More...
 
template<typename Func >
void visit_top (Func &&f, IterFirst const dir=IterFirst::Left) const
 Visits each node, starting at the root node, for const trees. More...
 
template<typename Func >
std::result_of< Func(Valueconst &)>::type visit_top (Func &&f, typename std::result_of< Func(Value &)>::type initial, IterFirst const dir=IterFirst::Left)
 Visits each node, starting at the root node. More...
 
template<typename Func >
std::result_of< Func(Valueconst &)>::type visit_top (Func &&f, typename std::result_of< Func(Value const &)>::type initial, IterFirst const dir=IterFirst::Left) const
 Visits each node, starting at the root node, for const trees. More...
 

Static Public Member Functions

Implementation for visitors
template<typename Func , typename PtrType >
static std::result_of< Func(Ptr)>::type visit_bottom_rec (Func &&f, typename std::result_of< Func(PtrType)>::type initial, IterFirst const dir, PtrType ptr)
 Recursively visits a subtree, bottom-first. More...
 
template<typename Func , typename ValueType , typename PtrType >
static std::result_of< Func(ValueType &)>::type visit_bottom_rec (Func &&f, typename std::result_of< Func(ValueType &)>::type initial, IterFirst const dir, PtrType ptr)
 Recursively visits a subtree, bottom-first. More...
 
template<typename Func , typename PtrType >
static void visit_bottom_rec (Func &&f, IterFirst const dir, PtrType ptr)
 Recursively visits a subtree, bottom-first. More...
 
template<typename Func , typename PtrType >
static std::result_of< Func(PtrType)>::type visit_top_rec (Func &&f, typename std::result_of< Func(PtrType)>::type initial, IterFirst const dir, PtrType ptr)
 Recursively visits a subtree, top-first for const trees. More...
 
template<typename Func , typename PtrType , typename ValueType >
static std::result_of< Func(ValueType &)>::type visit_top_rec (Func &&f, typename std::result_of< Func(ValueType &)>::type initial, IterFirst const dir, PtrType ptr)
 Recursively visits a subtree, top-first. More...
 
template<typename Func , typename PtrType >
static void visit_top_rec (Func &&f, IterFirst const dir, PtrType ptr)
 Recursively visits a subtree, top-first. More...
 

Public Attributes

Noder = nullptr
 Root node of the tree. More...
 

Detailed Description

template<typename T>
class syten::BinaryTree::Tree< T >

The binary tree structure, versioned via boost_version_Tree.


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