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

object () const
 
virtual const BinNodeleft () const
 
virtual const BinNoderight () const
 
const BinNodeparent () 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 BinNodegrandParent ()
 
virtual BinNodepibling ()
 
virtual BinNodesibling ()
 
virtual unsigned char childCount () const
 
int level () const
 
virtual void print () const
 
virtual BinNodeclone ()
 
virtual void setLeft (BinNode *left)
 
virtual void setRight (BinNode *right)
 
virtual BinNodeleft ()
 
BinNode ** leftAddr ()
 
virtual BinNoderight ()
 
BinNode ** rightAddr ()
 

Protected Attributes

BinNode_parent
 
BinNode ** _location
 
_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: