Intrusive Containers
Protected Member Functions | Friends | List of all members
TreeInNode< R, N, K, n > Class Template Reference

#include <TreeIn.h>

Collaboration diagram for TreeInNode< R, N, K, n >:
Collaboration graph

Protected Member Functions

 TreeInNode ()
 
 ~TreeInNode ()
 
void addTo (R &root)
 
void addTo (R *root)
 
virtual void remove ()
 
R * root () const
 Return pointer to list we are on. More...
 
N * parent () const
 
N * left () const
 
N * right () const
 
N * next () const
 
N * prev () const
 
void check () const
 

Friends

class TreeInRoot< R, N, K, n >
 

Detailed Description

template<class R, class N, class K, int n>
class TreeInNode< R, N, K, n >

Intrusive Binary Tree, Node.

Template Parameters
LThe class that will be the owner of the List. Must derive from TreeInRoot<R, N, K, n>
NThe class that will be the nodes of the List. Must derive from TreeInNode<R, N, K, n>
nA numerical parameter to allow a give List/Node combination to have multiple list-node relationships. Defaults to 0 if not provided.
See also
TreeInRoot

Constructor & Destructor Documentation

template<class R , class N , class K , int n>
TreeInNode< R, N, K, n >::TreeInNode ( )
protected

Constructor.

template<class R , class N , class K , int n>
TreeInNode< R, N, K, n >::~TreeInNode ( )
protected

Destructor.

Remove us from we are on, if any.

Member Function Documentation

template<class R , class N , class K , int n>
void TreeInNode< R, N, K, n >::addTo ( R &  root)
protected

Add ourself to a list at "natural" postion. Note that this is the front for singly linked lists, and the end for doubly linked lists.

Parameters
rootList to add to.

Here is the call graph for this function:

Here is the caller graph for this function:

template<class R , class N , class K , int n>
void TreeInNode< R, N, K, n >::addTo ( R *  root)
protected

Add ourself to a tree

Parameters
rootTree to add to.

Here is the call graph for this function:

template<class R , class N , class K , int n>
void TreeInNode< R, N, K, n >::check ( ) const
inlineprotected

Here is the caller graph for this function:

template<class R , class N , class K , int n>
N* TreeInNode< R, N, K, n >::left ( ) const
inlineprotected
template<class R , class N , class K , int n>
N * TreeInNode< R, N, K, n >::next ( ) const
inlineprotected

Return node next in sort sequence.

Here is the call graph for this function:

template<class R , class N , class K , int n>
N* TreeInNode< R, N, K, n >::parent ( ) const
inlineprotected

Here is the caller graph for this function:

template<class R , class N , class K , int n>
N * TreeInNode< R, N, K, n >::prev ( ) const
inlineprotected

Return previous node in sort sequence.

Here is the call graph for this function:

Here is the caller graph for this function:

template<class R , class N , class K , int n>
void TreeInNode< R, N, K, n >::remove ( )
inlineprotectedvirtual

Remove node from whatever tree it is on, if it is on a tree.

Here is the call graph for this function:

template<class R , class N , class K , int n>
N* TreeInNode< R, N, K, n >::right ( ) const
inlineprotected
template<class R , class N , class K , int n>
R* TreeInNode< R, N, K, n >::root ( ) const
inlineprotected

Return pointer to list we are on.

Here is the caller graph for this function:

Friends And Related Function Documentation

template<class R , class N , class K , int n>
friend class TreeInRoot< R, N, K, n >
friend

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