diff --git a/bintrees/bintrees-tests.ts b/bintrees/bintrees-tests.ts new file mode 100644 index 0000000000..707d8e0adf --- /dev/null +++ b/bintrees/bintrees-tests.ts @@ -0,0 +1,14 @@ +import { BinTree, RBTree } from 'bintrees'; + +let treeA = new RBTree((a:number, b:number) => a - b); + +treeA.insert(5); +treeA.insert(3); +treeA.remove(3); + +let treeB = new BinTree((a:string, b:string) => a.length - b.length); + +treeB.insert('hi'); +treeB.insert('there'); +treeB.insert('how'); +treeB.insert('are'); diff --git a/bintrees/index.d.ts b/bintrees/index.d.ts new file mode 100644 index 0000000000..9853be67dc --- /dev/null +++ b/bintrees/index.d.ts @@ -0,0 +1,61 @@ +// Type definitions for bintrees 1.0.1 +// Project: https://github.com/vadimg/js_bintrees +// Definitions by: Cayle Sharrock +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +declare module 'bintrees' { + + type Callback = (err: Error, item: T) => void; + type Comparator = (a: T, b: T) => number; + + class Iterator { + constructor(tree: TreeBase); + + data(): T; + + next(): T; + + prev(): T; + } + + class TreeBase { + size: number; + + clear(): void; + + find(data: T): T; + + findIter(data: T): Iterator; + + lowerBound(item: T): Iterator; + + upperBound(item: T): Iterator; + + min(): T; + + max(): T; + + iterator(): Iterator; + + each(cb: Callback): void; + + reach(cb: Callback): void; + } + + + export class RBTree extends TreeBase { + constructor(comparator: Comparator); + + insert(item: T): boolean; + + remove(item: T): boolean; + } + + export class BinTree extends TreeBase { + constructor(comparator: Comparator); + + insert(item: T): boolean; + + remove(item: T): boolean; + } +} diff --git a/bintrees/tsconfig.json b/bintrees/tsconfig.json new file mode 100644 index 0000000000..afbad4af37 --- /dev/null +++ b/bintrees/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": false, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "bintrees-tests.ts" + ] +}