ORIGINAL
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Friends | List of all members
original::skipList< K_TYPE, V_TYPE, ALLOC, Compare >::skipListNode Class Reference

Internal node class for Skip List. More...

#include <skipList.h>

Collaboration diagram for original::skipList< K_TYPE, V_TYPE, ALLOC, Compare >::skipListNode:
Collaboration graph

Public Member Functions

 skipListNode (const K_TYPE &key=K_TYPE{}, const V_TYPE &value=V_TYPE{}, u_integer levels=1, std::initializer_list< skipListNode * > next={})
 Constructs a new skipListNode.
 
couple< const K_TYPE, V_TYPE > & getVal ()
 Gets key-value pair (non-const)
 
const couple< const K_TYPE, V_TYPE > & getVal () const
 Gets key-value pair (const)
 
const K_TYPE & getKey () const
 Gets key.
 
const V_TYPE & getValue () const
 Gets value (const)
 
V_TYPE & getValue ()
 Gets value (non-const)
 
u_integer getLevels () const
 Gets number of levels for this node.
 
void expandLevels (u_integer new_levels)
 Expands node to more levels.
 
void shrinkLevels (u_integer new_levels)
 Shrinks node to fewer levels.
 
void setValue (const V_TYPE &value)
 Sets new value.
 
skipListNodegetPNext (u_integer levels) const
 Gets next node at specified level.
 
void setPNext (u_integer levels, skipListNode *next)
 Sets next node at specified level.
 

Static Public Member Functions

static void connect (u_integer levels, skipListNode *prev, skipListNode *next)
 Connects two nodes at specified level.
 

Friends

class skipList
 

Detailed Description

template<typename K_TYPE, typename V_TYPE, typename ALLOC = allocator<K_TYPE>, typename Compare = increaseComparator<K_TYPE>>
class original::skipList< K_TYPE, V_TYPE, ALLOC, Compare >::skipListNode

Internal node class for Skip List.

Represents a single node in the list with:

Constructor & Destructor Documentation

◆ skipListNode()

template<typename K_TYPE , typename V_TYPE , typename ALLOC , typename Compare >
original::skipList< K_TYPE, V_TYPE, ALLOC, Compare >::skipListNode::skipListNode ( const K_TYPE &  key = K_TYPE{},
const V_TYPE &  value = V_TYPE{},
u_integer  levels = 1,
std::initializer_list< skipListNode * >  next = {} 
)
explicit

Constructs a new skipListNode.

Parameters
keyKey to store
valueValue to store
levelsNumber of levels for this node
nextInitializer list of next pointers

Member Function Documentation

◆ connect()

template<typename K_TYPE , typename V_TYPE , typename ALLOC , typename Compare >
void original::skipList< K_TYPE, V_TYPE, ALLOC, Compare >::skipListNode::connect ( u_integer  levels,
skipListNode prev,
skipListNode next 
)
static

Connects two nodes at specified level.

Parameters
levelsLevel to connect at (1-based)
prevPrevious node
nextNext node

◆ expandLevels()

template<typename K_TYPE , typename V_TYPE , typename ALLOC , typename Compare >
void original::skipList< K_TYPE, V_TYPE, ALLOC, Compare >::skipListNode::expandLevels ( u_integer  new_levels)

Expands node to more levels.

Parameters
new_levelsNew total number of levels

◆ getKey()

template<typename K_TYPE , typename V_TYPE , typename ALLOC , typename Compare >
const K_TYPE & original::skipList< K_TYPE, V_TYPE, ALLOC, Compare >::skipListNode::getKey ( ) const

Gets key.

Returns
Const reference to key

◆ getLevels()

template<typename K_TYPE , typename V_TYPE , typename ALLOC , typename Compare >
original::u_integer original::skipList< K_TYPE, V_TYPE, ALLOC, Compare >::skipListNode::getLevels ( ) const

Gets number of levels for this node.

Returns
Number of levels

◆ getPNext()

template<typename K_TYPE , typename V_TYPE , typename ALLOC , typename Compare >
original::skipList< K_TYPE, V_TYPE, ALLOC, Compare >::skipListNode * original::skipList< K_TYPE, V_TYPE, ALLOC, Compare >::skipListNode::getPNext ( u_integer  levels) const

Gets next node at specified level.

Parameters
levelsLevel to query (1-based)
Returns
Pointer to next node at specified level

◆ getVal() [1/2]

template<typename K_TYPE , typename V_TYPE , typename ALLOC , typename Compare >
original::couple< const K_TYPE, V_TYPE > & original::skipList< K_TYPE, V_TYPE, ALLOC, Compare >::skipListNode::getVal ( )

Gets key-value pair (non-const)

Returns
Reference to key-value pair

◆ getVal() [2/2]

template<typename K_TYPE , typename V_TYPE , typename ALLOC , typename Compare >
const original::couple< const K_TYPE, V_TYPE > & original::skipList< K_TYPE, V_TYPE, ALLOC, Compare >::skipListNode::getVal ( ) const

Gets key-value pair (const)

Returns
Const reference to key-value pair

◆ getValue() [1/2]

template<typename K_TYPE , typename V_TYPE , typename ALLOC , typename Compare >
V_TYPE & original::skipList< K_TYPE, V_TYPE, ALLOC, Compare >::skipListNode::getValue ( )

Gets value (non-const)

Returns
Reference to value

◆ getValue() [2/2]

template<typename K_TYPE , typename V_TYPE , typename ALLOC , typename Compare >
const V_TYPE & original::skipList< K_TYPE, V_TYPE, ALLOC, Compare >::skipListNode::getValue ( ) const

Gets value (const)

Returns
Const reference to value

◆ setPNext()

template<typename K_TYPE , typename V_TYPE , typename ALLOC , typename Compare >
void original::skipList< K_TYPE, V_TYPE, ALLOC, Compare >::skipListNode::setPNext ( u_integer  levels,
skipListNode next 
)

Sets next node at specified level.

Parameters
levelsLevel to modify (1-based)
nextNew next node to set

◆ setValue()

template<typename K_TYPE , typename V_TYPE , typename ALLOC , typename Compare >
void original::skipList< K_TYPE, V_TYPE, ALLOC, Compare >::skipListNode::setValue ( const V_TYPE &  value)

Sets new value.

Parameters
valueNew value to set

◆ shrinkLevels()

template<typename K_TYPE , typename V_TYPE , typename ALLOC , typename Compare >
void original::skipList< K_TYPE, V_TYPE, ALLOC, Compare >::skipListNode::shrinkLevels ( u_integer  new_levels)

Shrinks node to fewer levels.

Parameters
new_levelsNew total number of levels

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