# DataStructures Namespace Reference

## Classes

class | BinarySearchTree
| A binary search tree and an AVL balanced binary search tree. More...
class | AVLBalancedBinarySearchTree
| An AVLBalancedBinarySearchTree is a binary tree that is always balanced. More...
struct | Page
class | BPlusTree
class | CircularLinkedList
| (Circular) Linked List ADT (Doubly Linked Pointer to Node Style) - More...
class | List
| Array based implementation of a list. More...
class | Map
class | MemoryPool
class | MLKeyRef
class | Multilist
| The multilist, representing an abstract data type that generally holds lists. More...
class | OrderedList
class | Queue
| A queue implemented as an array with a read and write index. More...
class | QueueLinkedList
| A queue implemented using a linked list. Rarely used. More...
class | StringKeyedHash
| Using a string as a identifier for a node, store an allocated pointer to that node. More...
class | Table
| Holds a set of columns, a set of rows, and rows times columns cells. More...
class | SingleProducerConsumer
| A single producer consumer implementation without critical sections. More...

## Functions

template<class key_type >
int | defaultMapKeyComparison (const key_type &a, const key_type &b)
template<class templateType >
void | DeletePtr_RakNet (templateType &ptr, const char *file, unsigned int line)
template<class templateType >
void | DeletePtr (templateType &ptr)

## Detailed Description

The namespace DataStructures was only added to avoid compiler errors for commonly named data structures As these data structures are stand-alone, you can use them outside of RakNet for your own projects if you wish.

## Function Documentation

template<class key_type >

int DataStructures::defaultMapKeyComparison | ( | const key_type & | a,
|  | const key_type & | b |
| ) |  |  | `[inline]`

The default comparison has to be first so it can be called as a default parameter. It then is followed by MapNode, followed by NodeComparisonFunc

template<class templateType >

void DataStructures::DeletePtr | ( | templateType & | ptr | ) | `[inline]`

Can be used with Multilist::ForEach Assuming the Multilist holds pointers, will delete those pointers

template<class templateType >

void DataStructures::DeletePtr_RakNet | ( | templateType & | ptr,
|  | const char * | file,
|  | unsigned int | line |
| ) |  |  | `[inline]`

Can be used with Multilist::ForEach Assuming the Multilist holds pointers, will delete those pointers