sonic-forest
Version:
High-performance (binary) tree and sorted map implementation (AVL, Splay, Radix, Red-Black)
28 lines (27 loc) • 1.84 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_1, N extends ITreeNode<K_1, unknown>>(root: N | undefined, node: N, comparator: Comparator<K_1>) => N, insertLeft: <K_2, N_1 extends ITreeNode<K_2, unknown>>(root: N_1, node: N_1, parent: N_1) => N_1, insertRight: <K_3, N_2 extends ITreeNode<K_3, unknown>>(root: N_2, node: N_2, parent: N_2) => N_2, remove: <K_4, N_3 extends ITreeNode<K_4, unknown>>(root: N_3 | undefined, n: N_3) => N_3 | undefined, print: <K_5, V_1>(node: HeadlessNode | ITreeNode<K_5, V_1> | undefined, tab?: string) => string) => {
new <K_6, V_2>(comparator?: Comparator<K_6> | undefined): {
min: ITreeNode<K_6, V_2> | undefined;
root: ITreeNode<K_6, V_2> | undefined;
max: ITreeNode<K_6, V_2> | undefined;
readonly comparator: Comparator<K_6>;
set(k: K_6, v: V_2): SonicNodePublicReference<ITreeNode<K_6, V_2>>;
find(k: K_6): SonicNodePublicReference<ITreeNode<K_6, V_2>> | undefined;
get(k: K_6): V_2 | undefined;
del(k: K_6): boolean;
clear(): void;
has(k: K_6): boolean;
_size: number;
size(): number;
isEmpty(): boolean;
getOrNextLower(k: K_6): ITreeNode<K_6, V_2> | undefined;
forEach(fn: (node: ITreeNode<K_6, V_2>) => void): void;
first(): ITreeNode<K_6, V_2> | undefined;
last(): ITreeNode<K_6, V_2> | undefined;
readonly next: <N_4 extends HeadlessNode>(curr: N_4) => N_4 | undefined;
iterator0(): () => ITreeNode<K_6, V_2> | undefined;
iterator(): Iterator<ITreeNode<K_6, V_2>, any, undefined>;
entries(): IterableIterator<ITreeNode<K_6, V_2>>;
toString(tab: string): string;
};
};