#include <kmap.h>
Definition at line 267 of file kmap.h.
Public Types |
|
| typedef DATA_TYPE | DataType |
| typedef DATA_TYPE::KeyType | KeyType |
| typedef DATA_TYPE::ConstKeyType | ConstKeyType |
| typedef DATA_TYPE::ValueType | ValueType |
| typedef DATA_TYPE::ConstValueType | ConstValueType |
| typedef ALLOCATOR | AllocatorType |
|
typedef RedBack_ConstIteratorType < RecordType > |
ConstIteratorType |
|
typedef RedBack_IteratorType < RecordType > |
IteratorType |
Public Member Functions |
|
| KRedBlackTree () | |
| KRedBlackTree (KRedBlackTree const &pTree) | |
| ~KRedBlackTree () | |
| KRedBlackTree & | operator= (KRedBlackTree const &pTree) |
| Deep copy pTree in this. |
|
| bool | operator== (KRedBlackTree const &pTree) const |
| void | Reserve (unsigned int pRecordCount) |
| Ask ALLOCATOR to reserve space to hold
pRecordCount elements. |
|
| int | GetSize () const |
| Get the number of elements in the tree.
|
|
| bool | Empty () const |
| KPair< RecordType *, bool > | Insert (DataType const &pData) |
| Insert a new element in the tree. |
|
| bool | Remove (KeyType const &pKey) |
| Remove an element identified by a key from
the tree. |
|
| void | Clear () |
| Remove all elements from the tree. |
|
| RecordType const * | Minimum () const |
| Find the smallest element in the tree.
|
|
| RecordType * | Minimum () |
| Find the smallest element in the tree.
|
|
| RecordType const * | Maximum () const |
| Find the largest element in the tree.
|
|
| RecordType * | Maximum () |
| Find the largest element in the tree.
|
|
| RecordType const * | Find (KeyType const &pKey) const |
| Find the key-value pair with key pKey.
|
|
| RecordType * | Find (KeyType const &pKey) |
| Find the key-value pair with key pKey.
|
|
| RecordType const * | UpperBound (KeyType const &pKey) const |
| Find the key-value pair with the smallest
key greater than pKey. |
|
| RecordType * | UpperBound (KeyType const &pKey) |
| Find the key-value pair with the smallest
key greater than pKey. |
|
Protected Member Functions |
|
| void | IsSane () |
| Sanity check on the tree. |
|
| void | IsSubTreeSane (RecordType const *pNode) const |
| void | ComputeBlackDepth (RecordType *pNode, unsigned int pDepth) |
| void | CheckLeavesBlackDepth (RecordType *pNode, unsigned int pBlackDepth) |
| RecordType * | DuplicateSubTree (RecordType const *pNode) |
| void | FixNodesAfterInsertion (RecordType *pNode) |
| void | LeftRotate (RecordType *pNode) |
| void | RightRotate (RecordType *pNode) |
| void | RemoveNode (RecordType *pNode) |
| void | ReplaceNode (RecordType *pNodeToReplace, RecordType *pReplacement) |
| RecordType * | Sibling (RecordType const *pParent, RecordType const *pNode) const |
| bool | IsBlack (RecordType const *pNode) |
| void | FixNodesAfterRemoval (RecordType *pParent, RecordType *pNode) |
| void | ClearSubTree (RecordType *pNode) |
| int | GetSubTreeSize (RecordType *pNode) const |
Protected Attributes |
|
| RecordType * | mRoot |
| int | mSize |
| AllocatorType | mAllocator |
Classes |
|
| class | RecordType |
| This class represents a node in the tree.
More... |
|
| typedef DATA_TYPE::ConstKeyType ConstKeyType |
| typedef DATA_TYPE::ConstValueType ConstValueType |
| typedef ALLOCATOR AllocatorType |
| typedef RedBack_IteratorType<RecordType> IteratorType |
| KRedBlackTree | ( | ) | [inline] |
| KRedBlackTree | ( | KRedBlackTree< DATA_TYPE, KEY_COMPARE_FUNCTOR, ALLOCATOR > const & | pTree | ) | [inline] |
| ~KRedBlackTree | ( | ) | [inline] |
| KRedBlackTree& operator= | ( | KRedBlackTree< DATA_TYPE, KEY_COMPARE_FUNCTOR, ALLOCATOR > const & | pTree | ) | [inline] |
Deep copy pTree in this.
| pTree |
Definition at line 478 of file kmap.h.
Referenced by KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::KRedBlackTree().
| bool operator== | ( | KRedBlackTree< DATA_TYPE, KEY_COMPARE_FUNCTOR, ALLOCATOR > const & | pTree | ) | const [inline] |
| void Reserve | ( | unsigned int | pRecordCount | ) | [inline] |
Ask ALLOCATOR to reserve space to hold pRecordCount elements.
| pRecordCount |
Definition at line 551 of file kmap.h.
Referenced by KMap< K, T, Compare >::Reserve().
| int GetSize | ( | ) | const [inline] |
Get the number of elements in the tree.
Takes O(1) time.
Definition at line 559 of file kmap.h.
Referenced by KMap< K, T, Compare >::GetSize(), and KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::operator==().
| bool Empty | ( | ) | const [inline] |
Definition at line 561 of file kmap.h.
Referenced by KMap< K, T, Compare >::Empty().
| KPair<RecordType*, bool> Insert | ( | DataType const & | pData | ) | [inline] |
Insert a new element in the tree.
Takes O(log n) time.
| pData | The element to insert. |
Definition at line 568 of file kmap.h.
Referenced by KMap< K, T, Compare >::Insert().
| bool Remove | ( | KeyType const & | pKey | ) | [inline] |
Remove an element identified by a key from the tree.
Takes O(log n) time.
| pKey | The key identifying the element to remove. |
Definition at line 648 of file kmap.h.
Referenced by KMap< K, T, Compare >::Remove().
| void Clear | ( | ) | [inline] |
Remove all elements from the tree.
Takes O(n) time. Recursive.
Definition at line 688 of file kmap.h.
Referenced by KMap< K, T, Compare >::Clear(), KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::operator=(), and KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::~KRedBlackTree().
| RecordType const* Minimum | ( | ) | const [inline] |
Find the smallest element in the tree.
Takes O(log n) time.
Definition at line 704 of file kmap.h.
Referenced by KMap< K, T, Compare >::Minimum(), and KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::operator==().
| RecordType* Minimum | ( | ) | [inline] |
| RecordType const* Maximum | ( | ) | const [inline] |
Find the largest element in the tree.
Takes O(log n) time.
Definition at line 734 of file kmap.h.
Referenced by KMap< K, T, Compare >::Maximum().
| RecordType* Maximum | ( | ) | [inline] |
| RecordType const* Find | ( | KeyType const & | pKey | ) | const [inline] |
Find the key-value pair with key pKey.
Takes O(log n) time.
| pKey | The key to look for. |
Definition at line 765 of file kmap.h.
Referenced by KMap< K, T, Compare >::Find().
| RecordType* Find | ( | KeyType const & | pKey | ) | [inline] |
| RecordType const* UpperBound | ( | KeyType const & | pKey | ) | const [inline] |
Find the key-value pair with the smallest key greater than pKey.
Takes O(log n) time.
| pKey | The key to look for. |
Definition at line 819 of file kmap.h.
Referenced by KMap< K, T, Compare >::UpperBound().
| RecordType* UpperBound | ( | KeyType const & | pKey | ) | [inline] |
| void IsSane | ( | ) | [inline, protected] |
Sanity check on the tree.
Check if all red-black tree properties hold. Also check if all key-values pairs are ordered properly.
Definition at line 875 of file kmap.h.
Referenced by KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::Insert(), and KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::Remove().
| void IsSubTreeSane | ( | RecordType const * | pNode | ) | const [inline, protected] |
Definition at line 898 of file kmap.h.
Referenced by KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::IsSane(), and KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::IsSubTreeSane().
| void ComputeBlackDepth | ( | RecordType * | pNode, | |
| unsigned int | pDepth | |||
| ) | [inline, protected] |
Definition at line 929 of file kmap.h.
Referenced by KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::ComputeBlackDepth(), and KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::IsSane().
| void CheckLeavesBlackDepth | ( | RecordType * | pNode, | |
| unsigned int | pBlackDepth | |||
| ) | [inline, protected] |
Definition at line 944 of file kmap.h.
Referenced by KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::CheckLeavesBlackDepth(), and KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::IsSane().
| RecordType* DuplicateSubTree | ( | RecordType const * | pNode | ) | [inline, protected] |
Definition at line 959 of file kmap.h.
Referenced by KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::DuplicateSubTree(), and KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::operator=().
| void FixNodesAfterInsertion | ( | RecordType * | pNode | ) | [inline, protected] |
Definition at line 991 of file kmap.h.
Referenced by KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::Insert().
| void LeftRotate | ( | RecordType * | pNode | ) | [inline, protected] |
Definition at line 1060 of file kmap.h.
Referenced by KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::FixNodesAfterInsertion(), and KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::FixNodesAfterRemoval().
| void RightRotate | ( | RecordType * | pNode | ) | [inline, protected] |
Definition at line 1109 of file kmap.h.
Referenced by KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::FixNodesAfterInsertion(), and KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::FixNodesAfterRemoval().
| void RemoveNode | ( | RecordType * | pNode | ) | [inline, protected] |
Definition at line 1158 of file kmap.h.
Referenced by KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::Remove(), and KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::RemoveNode().
| void ReplaceNode | ( | RecordType * | pNodeToReplace, | |
| RecordType * | pReplacement | |||
| ) | [inline, protected] |
Definition at line 1271 of file kmap.h.
Referenced by KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::RemoveNode().
| RecordType* Sibling | ( | RecordType const * | pParent, | |
| RecordType const * | pNode | |||
| ) | const [inline, protected] |
Definition at line 1304 of file kmap.h.
Referenced by KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::FixNodesAfterRemoval().
| bool IsBlack | ( | RecordType const * | pNode | ) | [inline, protected] |
Definition at line 1321 of file kmap.h.
Referenced by KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::FixNodesAfterRemoval().
| void FixNodesAfterRemoval | ( | RecordType * | pParent, | |
| RecordType * | pNode | |||
| ) | [inline, protected] |
Definition at line 1326 of file kmap.h.
Referenced by KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::RemoveNode().
| void ClearSubTree | ( | RecordType * | pNode | ) | [inline, protected] |
Definition at line 1445 of file kmap.h.
Referenced by KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::Clear(), and KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::ClearSubTree().
| int GetSubTreeSize | ( | RecordType * | pNode | ) | const [inline, protected] |
Definition at line 1456 of file kmap.h.
Referenced by KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::GetSubTreeSize().
RecordType* mRoot
[protected] |
Definition at line 866 of file kmap.h.
Referenced by KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::Clear(), KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::Find(), KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::FixNodesAfterInsertion(), KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::FixNodesAfterRemoval(), KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::Insert(), KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::IsSane(), KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::LeftRotate(), KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::Maximum(), KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::Minimum(), KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::operator=(), KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::Remove(), KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::RemoveNode(), KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::ReplaceNode(), KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::RightRotate(), and KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::UpperBound().
Definition at line 867 of file kmap.h.
Referenced by KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::Clear(), KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::Empty(), KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::GetSize(), KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::Insert(), KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::IsSane(), KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::operator=(), and KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::Remove().
AllocatorType
mAllocator
[protected] |
Definition at line 869 of file kmap.h.
Referenced by KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::Clear(), KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::ClearSubTree(), KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::DuplicateSubTree(), KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::Insert(), KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::operator=(), KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::Remove(), and KRedBlackTree< KKeyValuePair, KFbxMapKStringCompare, KBaseAllocator >::Reserve().