ORIGINAL
Loading...
Searching...
No Matches
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:

  • Key-value pair storage
  • Vector of next pointers for multiple levels

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 ( original::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
nodiscard

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 ( original::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: