Skip to main content
Version: v1

RedBlackTree Class

Signature

export declare class RedBlackTree<TKey, TData> implements SortedDictionary<TKey, TData>

Implements: SortedDictionary

Type Parameters

ParameterDescription
TKey
TData

Constructors

ConstructorDescription
(constructor)(compareKeys, aug)Constructs a new instance of the RedBlackTree class

Methods

MethodReturn TypeDescription
ceil(key)RBNode<TKey, TData> | undefined
floor(key)RBNode<TKey, TData> | undefined
gather(key, matcher)RBNode<TKey, TData>[]
get(key)RBNode<TKey, TData> | undefined
isEmpty()boolean
keys()TKey[]
map(action, accum)void
mapRange(action, accum, start, end)void
max()RBNode<TKey, TData> | undefined
min()RBNode<TKey, TData> | undefined
put(key, data, conflict)void
remove(key)void
removeExisting(key)void
size()number
walk(actions)voidDepth-first traversal with custom action; if action returns false, traversal is halted.
walkBackward(actions)void
walkExactMatchesBackward(compareFn, actionFn, continueLeftFn, continueRightFn)void
walkExactMatchesForward(compareFn, actionFn, continueLeftFn, continueRightFn)void

Constructor Details

(constructor)

Constructs a new instance of the RedBlackTree class

Signature

constructor(compareKeys: KeyComparer<TKey>, aug?: IRBAugmentation<TKey, TData> | undefined);

Parameters

ParameterModifiersTypeDescription
compareKeysKeyComparer<TKey>
augoptionalIRBAugmentation<TKey, TData> | undefined

Method Details

ceil

Signature

ceil(key: TKey): RBNode<TKey, TData> | undefined;

Parameters

ParameterTypeDescription
keyTKey

Returns

Return type: RBNode<TKey, TData> | undefined

floor

Signature

floor(key: TKey): RBNode<TKey, TData> | undefined;

Parameters

ParameterTypeDescription
keyTKey

Returns

Return type: RBNode<TKey, TData> | undefined

gather

Signature

gather(key: TKey, matcher: IRBMatcher<TKey, TData>): RBNode<TKey, TData>[];

Parameters

ParameterTypeDescription
keyTKey
matcherIRBMatcher<TKey, TData>

Returns

Return type: RBNode<TKey, TData>[]

get

Signature

get(key: TKey): RBNode<TKey, TData> | undefined;

Parameters

ParameterTypeDescription
keyTKey

Returns

Return type: RBNode<TKey, TData> | undefined

isEmpty

Signature

isEmpty(): boolean;

Returns

Return type: boolean

keys

Signature

keys(): TKey[];

Returns

Return type: TKey[]

map

Signature

map<TAccum>(action: PropertyAction<TKey, TData>, accum?: TAccum): void;
Type Parameters
ParameterDescription
TAccum

Parameters

ParameterModifiersTypeDescription
actionPropertyAction<TKey, TData>
accumoptionalTAccum

mapRange

Signature

mapRange<TAccum>(action: PropertyAction<TKey, TData>, accum?: TAccum, start?: TKey, end?: TKey): void;
Type Parameters
ParameterDescription
TAccum

Parameters

ParameterModifiersTypeDescription
actionPropertyAction<TKey, TData>
accumoptionalTAccum
startoptionalTKey
endoptionalTKey

max

Signature

max(): RBNode<TKey, TData> | undefined;

Returns

Return type: RBNode<TKey, TData> | undefined

min

Signature

min(): RBNode<TKey, TData> | undefined;

Returns

Return type: RBNode<TKey, TData> | undefined

put

Signature

put(key: TKey, data: TData, conflict?: ConflictAction<TKey, TData>): void;

Parameters

ParameterModifiersTypeDescription
keyTKey
dataTData
conflictoptionalConflictAction<TKey, TData>

remove

Signature

remove(key: TKey): void;

Parameters

ParameterTypeDescription
keyTKey

removeExisting

Signature

removeExisting(key: TKey): void;

Parameters

ParameterTypeDescription
keyTKey

size

Signature

size(): number;

Returns

Return type: number

walk

Depth-first traversal with custom action; if action returns false, traversal is halted.

Signature

walk(actions: RBNodeActions<TKey, TData>): void;

Parameters

ParameterTypeDescription
actionsRBNodeActions<TKey, TData>

walkBackward

Signature

walkBackward(actions: RBNodeActions<TKey, TData>): void;

Parameters

ParameterTypeDescription
actionsRBNodeActions<TKey, TData>

walkExactMatchesBackward

Signature

walkExactMatchesBackward(compareFn: (node: RBNode<TKey, TData>) => number, actionFn: (node: RBNode<TKey, TData>) => void, continueLeftFn: (number: number) => boolean, continueRightFn: (number: number) => boolean): void;

Parameters

ParameterTypeDescription
compareFn(node: RBNode<TKey, TData>) => number
actionFn(node: RBNode<TKey, TData>) => void
continueLeftFn(number: number) => boolean
continueRightFn(number: number) => boolean

walkExactMatchesForward

Signature

walkExactMatchesForward(compareFn: (node: RBNode<TKey, TData>) => number, actionFn: (node: RBNode<TKey, TData>) => void, continueLeftFn: (number: number) => boolean, continueRightFn: (number: number) => boolean): void;

Parameters

ParameterTypeDescription
compareFn(node: RBNode<TKey, TData>) => number
actionFn(node: RBNode<TKey, TData>) => void
continueLeftFn(number: number) => boolean
continueRightFn(number: number) => boolean