UNPKG

sonic-forest

Version:

High-performance (binary) tree and sorted map implementation (AVL, Splay, Radix, Red-Black)

64 lines (63 loc) 3.23 kB
import { OrderedMapIterator } from './SortedMapIterator'; import { TreeNode } from './SortedMapNode'; import { TreeNodeEnableIndex } from './SortedMapNode'; import type { Comparator, SonicMap, SonicNodePublicReference } from '../types'; export declare class SortedMap<K, V> implements SonicMap<K, V, TreeNode<K, V>> { enableIndex: boolean; protected _header: TreeNode<K, V> | TreeNodeEnableIndex<K, V>; protected _root: TreeNode<K, V> | undefined; protected readonly _TreeNodeClass: typeof TreeNode | typeof TreeNodeEnableIndex; constructor(comparator?: Comparator<K>, enableIndex?: boolean); protected _length: number; get length(): number; empty(): boolean; protected _lowerBound(curNode: TreeNode<K, V> | undefined, key: K): TreeNode<K, V>; protected _upperBound(curNode: TreeNode<K, V> | undefined, key: K): TreeNode<K, V> | TreeNodeEnableIndex<K, V>; protected _reverseLowerBound(curNode: TreeNode<K, V> | undefined, key: K): TreeNode<K, V>; protected _reverseUpperBound(curNode: TreeNode<K, V> | undefined, key: K): TreeNode<K, V> | TreeNodeEnableIndex<K, V>; protected _eraseNodeSelfBalance(curNode: TreeNode<K, V>): void; protected _eraseNode(curNode: TreeNode<K, V>): void; protected _insertNodeSelfBalance(curNode: TreeNode<K, V>): void; protected _set(key: K, value: V, hint?: OrderedMapIterator<K, V>): number; protected _getTreeNodeByKey(curNode: TreeNode<K, V> | undefined, key: K): TreeNode<K, V>; updateKeyByIterator(iter: OrderedMapIterator<K, V>, key: K): boolean; eraseElementByPos(pos: number): void; eraseElementByKey(key: K): boolean; eraseElementByIterator(iter: OrderedMapIterator<K, V>): OrderedMapIterator<K, V>; getHeight(): number; begin(): OrderedMapIterator<K, V>; end(): OrderedMapIterator<K, V>; rBegin(): OrderedMapIterator<K, V>; rEnd(): OrderedMapIterator<K, V>; front(): [K, V] | undefined; back(): [K, V] | undefined; lowerBound(key: K): OrderedMapIterator<K, V>; upperBound(key: K): OrderedMapIterator<K, V>; reverseLowerBound(key: K): OrderedMapIterator<K, V>; reverseUpperBound(key: K): OrderedMapIterator<K, V>; setElement(key: K, value: V, hint?: OrderedMapIterator<K, V>): number; getElementByPos(pos: number): void; getElementByKey(key: K): V; min: TreeNode<K, V> | undefined; root: TreeNode<K, V> | undefined; max: TreeNode<K, V> | undefined; readonly comparator: Comparator<K>; set(k: K, v: V): SonicNodePublicReference<TreeNode<K, V>>; find(k: K): SonicNodePublicReference<TreeNode<K, V>> | undefined; get(k: K): V | undefined; del(k: K): boolean; clear(): void; has(k: K): boolean; _size: number; size(): number; isEmpty(): boolean; getOrNextLower(k: K): TreeNode<K, V> | undefined; forEach(fn: (node: TreeNode<K, V>) => void): void; first(): TreeNode<K, V> | undefined; last(): TreeNode<K, V> | undefined; readonly next: <N extends import("../types").HeadlessNode>(curr: N) => N | undefined; iterator0(): () => undefined | TreeNode<K, V>; iterator(): Iterator<TreeNode<K, V>>; entries(): IterableIterator<TreeNode<K, V>>; toString(tab: string): string; }