Dynalib Utils
Public Member Functions | List of all members
DynaBTreeLeafNode< K, V > Class Template Reference

B-Tree Leaf Node. More...

#include <DynaBTree.h>

Inheritance diagram for DynaBTreeLeafNode< K, V >:
Inheritance graph
[legend]
Collaboration diagram for DynaBTreeLeafNode< K, V >:
Collaboration graph
[legend]

Public Member Functions

 DynaBTreeLeafNode (int leafOrder, int innerOrder)
 
virtual ~DynaBTreeLeafNode ()
 
 DynaBTreeLeafNode (const DynaBTreeLeafNode< K, V > &other)
 
DynaBTreeNode< K > * copy () override
 
void setElemDataPos (uint index, DynaTreeLeafElem< K, V > &elem)
 
bool getKeyFromData (uint index, K &key) override
 
void setKeyToData (uint index, K &key) override
 
V * getValue (uint index)
 
DynaTreeLeafElem< K, V > * getElemIntoSearch (uint index, DynaTreeLeafElem< K, V > &elem)
 
void setElemFromSearch (uint index, DynaTreeLeafElem< K, V > &elem)
 
void insertElem (DynaTreeLeafElem< K, V > &elem)
 
bool deleteElem (DynaTreeLeafElem< K, V > &elem)
 
int search (K &key, MatchType match=MatchType::FULL_KEY) override
 
int search (DynaTreeLeafElem< K, V > &elem, MatchType match=MatchType::FULL_KEY)
 
DynaBTreeNode< K > * split () override
 
DynaBTreeNode< K > * pullUpKey (K &key, DynaBTreeNode< K > *leftChild, DynaBTreeNode< K > *rightNode) override
 
void transferChildren (DynaBTreeNode< K > *fromNode, DynaBTreeNode< K > *toNode, uint toIndex) override
 
DynaBTreeNode< K > * joinChildren (DynaBTreeNode< K > *leftChild, DynaBTreeNode< K > *rightChild) override
 
void joinWithSibling (K &sinkKey, DynaBTreeNode< K > *rightSibling) override
 
void transferFromSibling (K &sinkKey, K &upKey, DynaBTreeNode< K > *sibling, uint fromIndex) override
 
- Public Member Functions inherited from DynaBTreeNode< K >
 DynaBTreeNode (TreeNodeType nodeType, int maxKeys, int leafOrder, int innerOrder)
 
virtual ~DynaBTreeNode ()
 
 DynaBTreeNode (const DynaBTreeNode< K > &other)
 
DynaBuffergetBuffer ()
 
DynaBTreeNode< K > * getParent ()
 
void setParent (DynaBTreeNode< K > *parent)
 
TreeNodeType getNodeType ()
 
int getKeyCount ()
 
bool wasFound (int returnValue)
 
int insertAt (int returnValue)
 
virtual bool isOverflow ()
 
virtual DynaBTreeNode< K > * handleOverflow ()
 
virtual bool isUnderflow ()
 
virtual bool canGiveKey ()
 
DynaBTreeNode< K > * getLeftSibling ()
 
void setLeftSibling (DynaBTreeNode< K > *sibling)
 
DynaBTreeNode< K > * getRightSibling ()
 
void setRightSibling (DynaBTreeNode< K > *sibling)
 
DynaBTreeNode< K > * handleUnderflow ()
 
- Public Member Functions inherited from ICopyable< DynaBTreeNode< K > >
 ICopyable ()=default
 
virtual ~ICopyable ()=default
 

Additional Inherited Members

- Protected Attributes inherited from DynaBTreeNode< K >
TreeNodeType _nodeType
 
int _leafOrder
 
int _innerOrder
 
DynaBuffer_buffer
 
index_t _parentIndex
 
index_t _leftSiblingIndex
 
index_t _rightSiblingIndex
 
DynaBTreeNode< K > * _parent
 
DynaBTreeNode< K > * _leftSibling
 
DynaBTreeNode< K > * _rightSibling
 

Detailed Description

template<typename K, typename V>
class DynaBTreeLeafNode< K, V >

B-Tree Leaf Node.

Template Parameters
K
V

Constructor & Destructor Documentation

◆ DynaBTreeLeafNode() [1/2]

template<typename K , typename V >
DynaBTreeLeafNode< K, V >::DynaBTreeLeafNode ( int  leafOrder,
int  innerOrder 
)

◆ ~DynaBTreeLeafNode()

template<typename K , typename V >
DynaBTreeLeafNode< K, V >::~DynaBTreeLeafNode ( )
virtual

◆ DynaBTreeLeafNode() [2/2]

template<typename K , typename V >
DynaBTreeLeafNode< K, V >::DynaBTreeLeafNode ( const DynaBTreeLeafNode< K, V > &  other)

Member Function Documentation

◆ copy()

template<typename K , typename V >
DynaBTreeNode< K > * DynaBTreeLeafNode< K, V >::copy ( )
overridevirtual

Reimplemented from DynaBTreeNode< K >.

◆ deleteElem()

template<typename K , typename V >
bool DynaBTreeLeafNode< K, V >::deleteElem ( DynaTreeLeafElem< K, V > &  elem)

◆ getElemIntoSearch()

template<typename K , typename V >
DynaTreeLeafElem< K, V > * DynaBTreeLeafNode< K, V >::getElemIntoSearch ( uint  index,
DynaTreeLeafElem< K, V > &  elem 
)

◆ getKeyFromData()

template<typename K , typename V >
bool DynaBTreeLeafNode< K, V >::getKeyFromData ( uint  index,
K &  key 
)
overridevirtual

Reimplemented from DynaBTreeNode< K >.

◆ getValue()

template<typename K, typename V>
V* DynaBTreeLeafNode< K, V >::getValue ( uint  index)

◆ insertElem()

template<typename K , typename V >
void DynaBTreeLeafNode< K, V >::insertElem ( DynaTreeLeafElem< K, V > &  elem)

◆ joinChildren()

template<typename K , typename V >
DynaBTreeNode< K > * DynaBTreeLeafNode< K, V >::joinChildren ( DynaBTreeNode< K > *  leftChild,
DynaBTreeNode< K > *  rightChild 
)
overridevirtual

Reimplemented from DynaBTreeNode< K >.

◆ joinWithSibling()

template<typename K , typename V >
void DynaBTreeLeafNode< K, V >::joinWithSibling ( K &  sinkKey,
DynaBTreeNode< K > *  rightSibling 
)
overridevirtual

Reimplemented from DynaBTreeNode< K >.

◆ pullUpKey()

template<typename K , typename V >
DynaBTreeNode< K > * DynaBTreeLeafNode< K, V >::pullUpKey ( K &  key,
DynaBTreeNode< K > *  leftChild,
DynaBTreeNode< K > *  rightNode 
)
overridevirtual

Reimplemented from DynaBTreeNode< K >.

◆ search() [1/2]

template<typename K , typename V >
int DynaBTreeLeafNode< K, V >::search ( K &  key,
MatchType  match = MatchType::FULL_KEY 
)
overridevirtual

Reimplemented from DynaBTreeNode< K >.

◆ search() [2/2]

template<typename K , typename V >
int DynaBTreeLeafNode< K, V >::search ( DynaTreeLeafElem< K, V > &  elem,
MatchType  match = MatchType::FULL_KEY 
)

◆ setElemDataPos()

template<typename K , typename V >
void DynaBTreeLeafNode< K, V >::setElemDataPos ( uint  index,
DynaTreeLeafElem< K, V > &  elem 
)

◆ setElemFromSearch()

template<typename K , typename V >
void DynaBTreeLeafNode< K, V >::setElemFromSearch ( uint  index,
DynaTreeLeafElem< K, V > &  elem 
)

◆ setKeyToData()

template<typename K , typename V >
void DynaBTreeLeafNode< K, V >::setKeyToData ( uint  index,
K &  key 
)
overridevirtual

Reimplemented from DynaBTreeNode< K >.

◆ split()

template<typename K , typename V >
DynaBTreeNode< K > * DynaBTreeLeafNode< K, V >::split ( )
overridevirtual

Reimplemented from DynaBTreeNode< K >.

◆ transferChildren()

template<typename K , typename V >
void DynaBTreeLeafNode< K, V >::transferChildren ( DynaBTreeNode< K > *  fromNode,
DynaBTreeNode< K > *  toNode,
uint  toIndex 
)
overridevirtual

Reimplemented from DynaBTreeNode< K >.

◆ transferFromSibling()

template<typename K , typename V >
void DynaBTreeLeafNode< K, V >::transferFromSibling ( K &  sinkKey,
K &  upKey,
DynaBTreeNode< K > *  sibling,
uint  fromIndex 
)
overridevirtual

Reimplemented from DynaBTreeNode< K >.


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