# 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

Note:
  IMPORTANT! If you use defaultMapKeyComparison then call IMPLEMENT_DEFAULT_COMPARISON or you will get an unresolved external linker error.

More...

class | MemoryPool
class | OrderedList

Note:
  IMPORTANT! If you use defaultOrderedListComparison then call IMPLEMENT_DEFAULT_COMPARISON or you will get an unresolved external linker error.

More...

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 | Table

Holds a set of columns, a set of rows, and rows times columns cells. The table data structure is useful if you want to store a set of structures and perform queries on those structures This is a relatively simple and fast implementation of the types of tables commonly used in databases See TableSerializer to serialize data members of the table See LightweightDatabaseClient and LightweightDatabaseServer to transmit the table over the network. 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)

## 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