#include <DS_BPlusTree.h>
Public Member Functions | |
bool | Get (const KeyType key, DataType &out) const |
bool | Delete (const KeyType key) |
bool | Delete (const KeyType key, DataType &out) |
bool | Insert (const KeyType key, const DataType &data) |
void | Preallocate (const int size) |
void | Clear (void) |
unsigned | Size (void) const |
bool | IsEmpty (void) const |
Page< KeyType, DataType, order > * | GetListHead (void) const |
DataType | GetDataHead (void) const |
void | PrintLeaves (void) |
void | ForEachLeaf (void(*func)(Page< KeyType, DataType, order > *leaf, int index)) |
void | ForEachData (void(*func)(DataType input, int index)) |
void | PrintGraph (void) |
void | ValidateTree (void) |
Protected Member Functions | |
void | ValidateTreeRecursive (Page< KeyType, DataType, order > *cur) |
void | DeleteFromPageAtIndex (const int index, Page< KeyType, DataType, order > *cur) |
void | FreePages (void) |
bool | GetIndexOf (const KeyType key, Page< KeyType, DataType, order > *page, int *out) const |
void | ShiftKeysLeft (Page< KeyType, DataType, order > *cur) |
bool | CanRotateLeft (Page< KeyType, DataType, order > *cur, int childIndex) |
bool | CanRotateRight (Page< KeyType, DataType, order > *cur, int childIndex) |
void | RotateRight (Page< KeyType, DataType, order > *cur, int childIndex, ReturnAction *returnAction) |
void | RotateLeft (Page< KeyType, DataType, order > *cur, int childIndex, ReturnAction *returnAction) |
Page< KeyType, DataType, order > * | InsertIntoNode (const KeyType key, const DataType &childData, int insertionIndex, Page< KeyType, DataType, order > *nodeData, Page< KeyType, DataType, order > *cur, ReturnAction *returnAction) |
Page< KeyType, DataType, order > * | InsertBranchDown (const KeyType key, const DataType &data, Page< KeyType, DataType, order > *cur, ReturnAction *returnAction, bool *success) |
Page< KeyType, DataType, order > * | GetLeafFromKey (const KeyType key) const |
bool | FindDeleteRebalance (const KeyType key, Page< KeyType, DataType, order > *cur, bool *underflow, KeyType rightRootKey, ReturnAction *returnAction, DataType &out) |
bool | FixUnderflow (int branchIndex, Page< KeyType, DataType, order > *cur, KeyType rightRootKey, ReturnAction *returnAction) |
void | ShiftNodeLeft (Page< KeyType, DataType, order > *cur) |
void | ShiftNodeRight (Page< KeyType, DataType, order > *cur) |
Static Protected Member Functions | |
static void | PrintLeaf (Page< KeyType, DataType, order > *leaf, int index) |
Protected Attributes | |
MemoryPool< Page< KeyType, DataType, order > > | pagePool |
Page< KeyType, DataType, order > * | root |
Page< KeyType, DataType, order > * | leftmostLeaf |
Classes | |
struct | ReturnAction |