UNPKG

min-heap-typed

Version:
135 lines (134 loc) 5.29 kB
/** * data-structure-typed * * @author Pablo Zeng * @copyright Copyright (c) 2022 Pablo Zeng <zrwusa@gmail.com> * @license MIT License */ import type { SkipLinkedListOptions } from '../../types'; export declare class SkipListNode<K, V> { key: K; value: V; forward: SkipListNode<K, V>[]; constructor(key: K, value: V, level: number); } /** * */ export declare class SkipList<K, V> { /** * The constructor function initializes a SkipLinkedList object with optional options and elements. * @param elements - The `elements` parameter is an iterable containing key-value pairs `[K, V]`. It * is used to initialize the SkipLinkedList with the given key-value pairs. If no elements are * provided, the SkipLinkedList will be empty. * @param {SkipLinkedListOptions} [options] - The `options` parameter is an optional object that can * contain two properties: */ constructor(elements?: Iterable<[K, V]>, options?: SkipLinkedListOptions); protected _head: SkipListNode<K, V>; /** * The function returns the head node of a SkipList. * @returns The method is returning a SkipListNode object with generic key type K and value type V. */ get head(): SkipListNode<K, V>; protected _level: number; /** * The function returns the value of the protected variable _level. * @returns The level property of the object. */ get level(): number; protected _maxLevel: number; /** * The function returns the maximum level. * @returns The value of the variable `_maxLevel` is being returned. */ get maxLevel(): number; protected _probability: number; /** * The function returns the probability value. * @returns The probability value stored in the protected variable `_probability` is being returned. */ get probability(): number; /** * Time Complexity: O(1) * Space Complexity: O(1) * * Get the value of the first element (the smallest element) in the Skip List. * @returns The value of the first element, or undefined if the Skip List is empty. */ get first(): V | undefined; /** * Time Complexity: O(log n) * Space Complexity: O(1) * * Get the value of the last element (the largest element) in the Skip List. * @returns The value of the last element, or undefined if the Skip List is empty. */ get last(): V | undefined; /** * Time Complexity: O(log n) * Space Complexity: O(1) * * The add function adds a new node with a given key and value to a Skip List data structure. * @param {K} key - The key parameter represents the key of the node that needs to be added to the skip list. * @param {V} value - The "value" parameter represents the value associated with the key that is being added to the Skip * List. */ add(key: K, value: V): void; /** * Time Complexity: O(log n) * Space Complexity: O(1) * * The function `get` retrieves the value associated with a given key from a skip list data structure. * @param {K} key - The `key` parameter is the key of the element that we want to retrieve from the data structure. * @returns The method `get(key: K)` returns the value associated with the given key if it exists in the data structure, * otherwise it returns `undefined`. */ get(key: K): V | undefined; /** * Time Complexity: O(log n) * Space Complexity: O(1) * * The function checks if a key exists in a data structure. * @param {K} key - The parameter "key" is of type K, which represents the type of the key being * checked. * @returns a boolean value. */ has(key: K): boolean; /** * Time Complexity: O(log n) * Space Complexity: O(1) * * The `delete` function removes a node with a specific key from a Skip List data structure. * @param {K} key - The key parameter represents the key of the node that needs to be removed from the skip list. * @returns The `delete` method returns a boolean value. It returns `true` if the key was successfully removed from the * skip list, and `false` if the key was not found in the skip list. */ delete(key: K): boolean; /** * Time Complexity: O(log n) * Space Complexity: O(1) * * Get the value of the first element in the Skip List that is greater than the given key. * @param key - the given key. * @returns The value of the first element greater than the given key, or undefined if there is no such element. */ higher(key: K): V | undefined; /** * Time Complexity: O(log n) * Space Complexity: O(1) * * Get the value of the last element in the Skip List that is less than the given key. * @param key - the given key. * @returns The value of the last element less than the given key, or undefined if there is no such element. */ lower(key: K): V | undefined; /** * Time Complexity: O(maxLevel) * Space Complexity: O(1) * * The function "_randomLevel" generates a random level based on a given probability and maximum level. * @returns the level, which is a number. */ protected _randomLevel(): number; }