SkipList
    
            
            in package
            
        
    
            
            implements
                            Iterator,                             ArrayAccess,                             Countable,                             Serializable                    
    
    
        
            Represents a SkipList
Interfaces, Classes, Traits and Enums
- Iterator
- ArrayAccess
- Countable
- Serializable
Table of Contents
- $comparator : callable|null
- $head : SkipNode
- $level : int
- $maxLevel : int
- $number_elements : int
- $position : SkipNode
- __call() : mixed
- Magic method to call closure as object method
- __construct() : mixed
- Constructor method
- add() : SkipNode
- Adds a value to the SkipList if not present
- addMany() : void
- Adds multiple values to the SkipList
- count() : int
- Returns the number of elements in the SkipList
- current() : mixed
- Returns the current value during iteration
- delete() : bool
- Deletes a value from the SkipList
- getRandom() : mixed|null
- Returns a random element from the SkipList
- getRandomM() : array<string|int, mixed>
- Returns an array of random elements from the SkipList
- key() : null
- Returns the current key during iteration
- next() : void
- Moves the iterator to the next element
- offsetExists() : bool
- Checks if an offset exists
- offsetGet() : mixed|null
- Returns the value at the specified offset
- offsetSet() : void
- Sets the value at the specified offset
- offsetUnset() : void
- Unsets the value at the specified offset
- printList() : mixed
- Prints the values in the SkipList, separated by levels
- rewind() : void
- Rewinds the iterator to the first element
- search() : SkipNode|null
- Searches for a value in the SkipList. SkipNode returned.
- searchRange() : array<string|int, mixed>
- Searches for values in a range in the SkipList
- serialize() : string
- Serializes the SkipList except the Closures
- setComparator() : mixed
- Sets the comparator function used for sorting
- toArray() : array<string|int, mixed>
- Returns an array representation of the SkipList
- unserialize() : void
- Unserializes the SkipList except the Closures
- valid() : bool
- Checks if the current position of the iterator is valid
- randomLevel() : int
- Generates a random level for a new node in the SkipList
Properties
$comparator
    private
        callable|null
    $comparator
    
    
        The comparison function used for sorting
$head
    private
        SkipNode
    $head
    
    
        The head node of the SkipList
$level
    private
        int
    $level
    
    
        The current level of the SkipList
$maxLevel
    private
        int
    $maxLevel
    
    
        The maximum level of the SkipList
$number_elements
    private
        int
    $number_elements
    
    
        The number of elements in the SkipList
$position
    private
        SkipNode
    $position
    
    
        The current node during iteration
Methods
__call()
Magic method to call closure as object method
    public
                    __call(string $method, array<string|int, mixed> $args) : mixed
    
        Parameters
- $method : string
- 
                    The name of the method 
- $args : array<string|int, mixed>
- 
                    The arguments passed to the method 
Return values
mixed —The result of the method
__construct()
Constructor method
    public
                    __construct([int $maxLevel = 10 ][, callable|null $comparator = null ]) : mixed
    
        Parameters
- $maxLevel : int = 10
- 
                    The maximum level of the SkipList (default 10) 
- $comparator : callable|null = null
- 
                    The comparison function used for sorting (default null) 
Tags
Return values
mixed —add()
Adds a value to the SkipList if not present
    public
                    add(mixed $val) : SkipNode
    
        Parameters
- $val : mixed
- 
                    The value to add to the SkipList 
Return values
SkipNode —The SkipNode containing the added value or the SkipNode already present with the value specified
addMany()
Adds multiple values to the SkipList
    public
                    addMany(array<string|int, mixed> &$arr) : void
    
        Parameters
- $arr : array<string|int, mixed>
- 
                    An array of values to add to the SkipList 
Return values
void —count()
Returns the number of elements in the SkipList
    public
                    count() : int
    
    
    
        Return values
int —The number of elements in the SkipList
current()
Returns the current value during iteration
    public
                    current() : mixed
    
    
    
        Return values
mixed —The current value
delete()
Deletes a value from the SkipList
    public
                    delete(mixed $val) : bool
    
        Parameters
- $val : mixed
- 
                    The value to delete from the SkipList 
Return values
bool —true if the value was successfully deleted, false otherwise
getRandom()
Returns a random element from the SkipList
    public
                    getRandom() : mixed|null
    
    
    
        Return values
mixed|null —A random element from the SkipList, or null if the SkipList is empty
getRandomM()
Returns an array of random elements from the SkipList
    public
                    getRandomM(int $number) : array<string|int, mixed>
    
        Parameters
- $number : int
- 
                    The number of random elements to return 
Return values
array<string|int, mixed> —An array of random elements from the SkipList
key()
Returns the current key during iteration
    public
                    key() : null
    
    
    
        Return values
null —next()
Moves the iterator to the next element
    public
                    next() : void
    
    
    
        Return values
void —offsetExists()
Checks if an offset exists
    public
                    offsetExists(mixed $offset) : bool
    
        Parameters
- $offset : mixed
- 
                    The offset to check 
Return values
bool —True if the offset exists, false otherwise
offsetGet()
Returns the value at the specified offset
    public
                    offsetGet(mixed $offset) : mixed|null
    
        Parameters
- $offset : mixed
- 
                    The offset to retrieve the value from 
Return values
mixed|null —The value at the specified offset, or null if the offset is out of bounds
offsetSet()
Sets the value at the specified offset
    public
                    offsetSet(mixed $offset, mixed $value) : void
    
        Parameters
- $offset : mixed
- 
                    The offset to set the value at 
- $value : mixed
- 
                    The value to set at the specified offset 
Return values
void —offsetUnset()
Unsets the value at the specified offset
    public
                    offsetUnset(mixed $offset) : void
    
        Parameters
- $offset : mixed
- 
                    The offset to unset the value at 
Return values
void —printList()
Prints the values in the SkipList, separated by levels
    public
                    printList([Closure $string_converter = null ]) : mixed
    
        Parameters
- $string_converter : Closure = null
- 
                    A function to convert each value to a string 
Return values
mixed —rewind()
Rewinds the iterator to the first element
    public
                    rewind() : void
    
    
    
        Return values
void —search()
Searches for a value in the SkipList. SkipNode returned.
    public
                    search(mixed $val) : SkipNode|null
    
        Parameters
- $val : mixed
- 
                    The value to search for 
Return values
SkipNode|null —The SkipNode containing the value, or null if the value is not in the SkipList
searchRange()
Searches for values in a range in the SkipList
    public
                    searchRange(mixed $val, mixed $valEnd) : array<string|int, mixed>
    
        Parameters
- $val : mixed
- 
                    The starting value of the range 
- $valEnd : mixed
- 
                    The ending value of the range 
Return values
array<string|int, mixed> —An array of values in the range
serialize()
Serializes the SkipList except the Closures
    public
                    serialize() : string
    
    
    
        Return values
string —The serialized representation of the SkipList
setComparator()
Sets the comparator function used for sorting
    public
                    setComparator(callable|null $comparator) : mixed
    
        Parameters
- $comparator : callable|null
- 
                    The comparison function used for sorting 
Return values
mixed —toArray()
Returns an array representation of the SkipList
    public
                    toArray() : array<string|int, mixed>
    
    
    
        Return values
array<string|int, mixed> —An array representation of the SkipList
unserialize()
Unserializes the SkipList except the Closures
    public
                    unserialize(string $data) : void
    
        Parameters
- $data : string
- 
                    The serialized representation of the SkipList 
Return values
void —valid()
Checks if the current position of the iterator is valid
    public
                    valid() : bool
    
    
    
        Return values
bool —True if the position is valid, false otherwise
randomLevel()
Generates a random level for a new node in the SkipList
    private
                    randomLevel() : int
    
    
    
        Return values
int —The level of the new node