DeSiGNAR  0.5a
Data Structures General Library
Classes | Public Types | Public Member Functions | Static Public Member Functions | List of all members
Designar::MTreeNode< Key > Class Template Reference

#include <nodesdef.H>

Inheritance diagram for Designar::MTreeNode< Key >:
Inheritance graph
[legend]
Collaboration diagram for Designar::MTreeNode< Key >:
Collaboration graph
[legend]

Classes

class  ChildrenIterator
 

Public Types

using KeyType = Key
 
using ValueType = Key
 
using ItemType = Key
 

Public Member Functions

 MTreeNode ()=default
 
 MTreeNode (const Key &k)
 
 MTreeNode (Key &&k)
 
Key & get_key ()
 
const Key & get_key () const
 
MTreeNodeget_first_child () const
 
MTreeNodeget_last_child () const
 
MTreeNodeget_right_sibling () const
 
MTreeNodeget_left_sibling () const
 
bool is_leaf () const
 
bool has_siblings () const
 
bool has_parent () const
 
bool has_children () const
 
void reset_sibling_info ()
 
void reset ()
 
void add_right_sibling (MTreeNode *s)
 
void add_left_sibling (MTreeNode *s)
 
void insert_child (MTreeNode *c)
 
void append_child (MTreeNode *c)
 
MTreeNoderemove_first_child ()
 
MTreeNoderemove_last_child ()
 
template<class Op >
void for_each_child (Op &) const
 
template<class Op >
void for_each_child (Op &&op=Op()) const
 

Static Public Member Functions

static void destroy_tree (MTreeNode *&)
 

Member Typedef Documentation

template<typename Key >
using Designar::MTreeNode< Key >::ItemType = Key
template<typename Key >
using Designar::MTreeNode< Key >::KeyType = Key
template<typename Key >
using Designar::MTreeNode< Key >::ValueType = Key

Constructor & Destructor Documentation

template<typename Key >
Designar::MTreeNode< Key >::MTreeNode ( )
default
template<typename Key >
Designar::MTreeNode< Key >::MTreeNode ( const Key &  k)
inline
template<typename Key >
Designar::MTreeNode< Key >::MTreeNode ( Key &&  k)
inline

Member Function Documentation

template<typename Key >
void Designar::MTreeNode< Key >::add_left_sibling ( MTreeNode< Key > *  s)
inline
template<typename Key >
void Designar::MTreeNode< Key >::add_right_sibling ( MTreeNode< Key > *  s)
inline
template<typename Key >
void Designar::MTreeNode< Key >::append_child ( MTreeNode< Key > *  c)
inline
template<typename Key >
void Designar::MTreeNode< Key >::destroy_tree ( MTreeNode< Key > *&  r)
static
template<typename Key >
template<class Op >
void Designar::MTreeNode< Key >::for_each_child ( Op &  op) const
template<typename Key >
template<class Op >
void Designar::MTreeNode< Key >::for_each_child ( Op &&  op = Op()) const
inline
template<typename Key >
MTreeNode* Designar::MTreeNode< Key >::get_first_child ( ) const
inline
template<typename Key >
Key& Designar::MTreeNode< Key >::get_key ( )
inline
template<typename Key >
const Key& Designar::MTreeNode< Key >::get_key ( ) const
inline
template<typename Key >
MTreeNode* Designar::MTreeNode< Key >::get_last_child ( ) const
inline
template<typename Key >
MTreeNode* Designar::MTreeNode< Key >::get_left_sibling ( ) const
inline
template<typename Key >
MTreeNode* Designar::MTreeNode< Key >::get_right_sibling ( ) const
inline
template<typename Key >
bool Designar::MTreeNode< Key >::has_children ( ) const
inline
template<typename Key >
bool Designar::MTreeNode< Key >::has_parent ( ) const
inline
template<typename Key >
bool Designar::MTreeNode< Key >::has_siblings ( ) const
inline
template<typename Key >
void Designar::MTreeNode< Key >::insert_child ( MTreeNode< Key > *  c)
inline
template<typename Key >
bool Designar::MTreeNode< Key >::is_leaf ( ) const
inline
template<typename Key >
MTreeNode* Designar::MTreeNode< Key >::remove_first_child ( )
inline
template<typename Key >
MTreeNode* Designar::MTreeNode< Key >::remove_last_child ( )
inline
template<typename Key >
void Designar::MTreeNode< Key >::reset ( )
inline
template<typename Key >
void Designar::MTreeNode< Key >::reset_sibling_info ( )
inline

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