BFLibCPP 0.1
CPP Library
Loading...
Searching...
No Matches
BF::BinTree< T, S >::BinNode Class Reference

#include <bintree.hpp>

Inheritance diagram for BF::BinTree< T, S >::BinNode:
Collaboration diagram for BF::BinTree< T, S >::BinNode:

Public Member Functions

T object () const
 
virtual const BinNode * left () const
 
virtual const BinNode * right () const
 
const BinNode * parent () const
 
virtual bool isLeaf () const
 
bool isRoot () const
 
char childType () const
 
- Public Member Functions inherited from BF::Object
 Object ()
 
 Object (Object &obj)
 
virtual ~Object ()
 

Protected Member Functions

 BinNode ()
 
 BinNode (T object)
 
virtual ~BinNode ()
 
virtual BinNode * grandParent ()
 
virtual BinNode * pibling ()
 
virtual BinNode * sibling ()
 
virtual unsigned char childCount () const
 
int level () const
 
virtual void print () const
 
virtual BinNode * clone ()
 
virtual void setLeft (BinNode *left)
 
virtual void setRight (BinNode *right)
 
virtual BinNode * left ()
 
BinNode ** leftAddr ()
 
virtual BinNode * right ()
 
BinNode ** rightAddr ()
 

Protected Attributes

BinNode * _parent
 
BinNode ** _location
 
T _obj
 

Friends

class BinTree< T, S >
 

Additional Inherited Members

- Static Public Member Functions inherited from BF::Object
static void retain (Object *obj)
 
static void release (Object *obj)
 
static int retainCount (Object *obj)
 
static int retainCount (Object &obj)
 

Constructor & Destructor Documentation

◆ BinNode() [1/2]

template<typename T , typename S = int>
BF::BinTree< T, S >::BinNode::BinNode ( )
inlineprotected

◆ BinNode() [2/2]

template<typename T , typename S = int>
BF::BinTree< T, S >::BinNode::BinNode ( T object)
inlineprotected
Here is the call graph for this function:

◆ ~BinNode()

template<typename T , typename S = int>
virtual BF::BinTree< T, S >::BinNode::~BinNode ( )
inlineprotectedvirtual

Member Function Documentation

◆ childCount()

template<typename T , typename S = int>
virtual unsigned char BF::BinTree< T, S >::BinNode::childCount ( ) const
inlineprotectedvirtual

Reimplemented in BF::RBTree< T, S >::RBNode.

◆ childType()

template<typename T , typename S = int>
char BF::BinTree< T, S >::BinNode::childType ( ) const
inline

Whether node is left or right child

Type:

  • (-1) : left
  • (0) : none (may be root)
  • (1) : right

◆ clone()

template<typename T , typename S = int>
virtual BinNode * BF::BinTree< T, S >::BinNode::clone ( )
inlineprotectedvirtual

Reimplemented in BF::RBTree< T, S >::RBNode, BF::RBTree< T, S >::RBNodeNonnull, and BF::RBTree< T, S >::RBNodeNull.

Here is the call graph for this function:

◆ grandParent()

template<typename T , typename S = int>
virtual BinNode * BF::BinTree< T, S >::BinNode::grandParent ( )
inlineprotectedvirtual

Reimplemented in BF::RBTree< T, S >::RBNode.

◆ isLeaf()

template<typename T , typename S = int>
virtual bool BF::BinTree< T, S >::BinNode::isLeaf ( ) const
inlinevirtual
Here is the call graph for this function:

◆ isRoot()

template<typename T , typename S = int>
bool BF::BinTree< T, S >::BinNode::isRoot ( ) const
inline

◆ left() [1/2]

template<typename T , typename S = int>
virtual BinNode * BF::BinTree< T, S >::BinNode::left ( )
inlineprotectedvirtual

Reimplemented in BF::RBTree< T, S >::RBNode.

◆ left() [2/2]

template<typename T , typename S = int>
virtual const BinNode * BF::BinTree< T, S >::BinNode::left ( ) const
inlinevirtual

Reimplemented in BF::RBTree< T, S >::RBNode.

◆ leftAddr()

template<typename T , typename S = int>
BinNode ** BF::BinTree< T, S >::BinNode::leftAddr ( )
inlineprotected

◆ level()

template<typename T , typename S = int>
int BF::BinTree< T, S >::BinNode::level ( ) const
inlineprotected
Here is the call graph for this function:

◆ object()

template<typename T , typename S = int>
T BF::BinTree< T, S >::BinNode::object ( ) const
inline

◆ parent()

template<typename T , typename S = int>
const BinNode * BF::BinTree< T, S >::BinNode::parent ( ) const
inline

◆ pibling()

template<typename T , typename S = int>
virtual BinNode * BF::BinTree< T, S >::BinNode::pibling ( )
inlineprotectedvirtual

Reimplemented in BF::RBTree< T, S >::RBNode.

Here is the call graph for this function:

◆ print()

template<typename T , typename S = int>
virtual void BF::BinTree< T, S >::BinNode::print ( ) const
inlineprotectedvirtual

Reimplemented in BF::RBTree< T, S >::RBNode.

Here is the call graph for this function:

◆ right() [1/2]

template<typename T , typename S = int>
virtual BinNode * BF::BinTree< T, S >::BinNode::right ( )
inlineprotectedvirtual

Reimplemented in BF::RBTree< T, S >::RBNode.

◆ right() [2/2]

template<typename T , typename S = int>
virtual const BinNode * BF::BinTree< T, S >::BinNode::right ( ) const
inlinevirtual

Reimplemented in BF::RBTree< T, S >::RBNode.

◆ rightAddr()

template<typename T , typename S = int>
BinNode ** BF::BinTree< T, S >::BinNode::rightAddr ( )
inlineprotected

◆ setLeft()

template<typename T , typename S = int>
virtual void BF::BinTree< T, S >::BinNode::setLeft ( BinNode * left)
inlineprotectedvirtual
Here is the call graph for this function:

◆ setRight()

template<typename T , typename S = int>
virtual void BF::BinTree< T, S >::BinNode::setRight ( BinNode * right)
inlineprotectedvirtual
Here is the call graph for this function:

◆ sibling()

template<typename T , typename S = int>
virtual BinNode * BF::BinTree< T, S >::BinNode::sibling ( )
inlineprotectedvirtual

Reimplemented in BF::RBTree< T, S >::RBNode.

Here is the call graph for this function:

Friends And Related Symbol Documentation

◆ BinTree< T, S >

template<typename T , typename S = int>
friend class BinTree< T, S >
friend

Member Data Documentation

◆ _location

template<typename T , typename S = int>
BinNode** BF::BinTree< T, S >::BinNode::_location
protected

Holds the address of where the node is in memory

◆ _obj

template<typename T , typename S = int>
T BF::BinTree< T, S >::BinNode::_obj
protected

◆ _parent

template<typename T , typename S = int>
BinNode* BF::BinTree< T, S >::BinNode::_parent
protected

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