adtjs
Version:
Javascript Abstract Data Types
36 lines (35 loc) • 1.26 kB
TypeScript
import { ValueNode, BaseTree } from "./Tree";
export declare class BTreeNode<T> extends ValueNode<T> {
left?: BTreeNode<T> | undefined;
right?: BTreeNode<T> | undefined;
get isLeaf(): boolean;
get children(): BTreeNode<T>[];
constructor(value: T, left?: BTreeNode<T> | undefined, right?: BTreeNode<T> | undefined);
}
export declare enum SearchBTreeTraverse {
Root = 0,
Left = 1,
Right = 2
}
export declare class BTree<T> extends BaseTree<T> {
root: BTreeNode<T>;
protected __size: number;
get size(): number;
constructor(root: BTreeNode<T>, comparer?: (a: T, b: T) => number);
find(value: T): BTreeNode<T> | undefined;
inOrderEnumerator(node?: BTreeNode<T>): Generator<BTreeNode<T>, number, unknown>;
postOrderEnumerator(node?: BTreeNode<T>): Generator<BTreeNode<T>, number, unknown>;
newNode(value: T): BTreeNode<T>;
min(node: BTreeNode<T>): BTreeNode<T>;
max(node: BTreeNode<T>): BTreeNode<T>;
protected findKey(value: T): {
node: BTreeNode<T>;
parent: BTreeNode<T>;
prevComp: number;
comp: number;
};
insert(value: T): boolean;
delete(value: T): boolean;
insertRange(values: T[]): boolean[];
deleteRange(values: T[]): boolean[];
}