sonic-forest
Version:
High-performance (binary) tree and sorted map implementation (AVL, Splay, Radix, Red-Black)
28 lines (27 loc) • 1.68 kB
TypeScript
import type { Comparator, HeadlessNode, ITreeNode, SonicNodePublicReference } from '../types';
export declare const createMap: (Node: new <K, V>(k: K, v: V) => ITreeNode<K, V>, insert: <K, N extends ITreeNode<K, unknown>>(root: N | undefined, node: N, comparator: Comparator<K>) => N, insertLeft: <K, N extends ITreeNode<K, unknown>>(root: N, node: N, parent: N) => N, insertRight: <K, N extends ITreeNode<K, unknown>>(root: N, node: N, parent: N) => N, remove: <K, N extends ITreeNode<K, unknown>>(root: N | undefined, n: N) => N | undefined, print: <K, V>(node: undefined | HeadlessNode | ITreeNode<K, V>, tab?: string) => string) => {
new <K, V>(comparator?: Comparator<K>): {
min: ITreeNode<K, V> | undefined;
root: ITreeNode<K, V> | undefined;
max: ITreeNode<K, V> | undefined;
readonly comparator: Comparator<K>;
set(k: K, v: V): SonicNodePublicReference<ITreeNode<K, V>>;
find(k: K): SonicNodePublicReference<ITreeNode<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): ITreeNode<K, V> | undefined;
forEach(fn: (node: ITreeNode<K, V>) => void): void;
first(): ITreeNode<K, V> | undefined;
last(): ITreeNode<K, V> | undefined;
readonly next: <N extends HeadlessNode>(curr: N) => N | undefined;
iterator0(): () => undefined | ITreeNode<K, V>;
iterator(): Iterator<ITreeNode<K, V>>;
entries(): IterableIterator<ITreeNode<K, V>>;
toString(tab: string): string;
};
};