From 3b0a6eb65af15694bb1310d8afe2eef0220449cf Mon Sep 17 00:00:00 2001 From: Cayle Sharrock Date: Fri, 25 Nov 2016 22:21:15 +0200 Subject: [PATCH 1/2] Add bintrees types --- bintrees/bintrees-tests.ts | 16 ++++++++++ bintrees/index.d.ts | 63 ++++++++++++++++++++++++++++++++++++++ bintrees/tsconfig.json | 19 ++++++++++++ 3 files changed, 98 insertions(+) create mode 100644 bintrees/bintrees-tests.ts create mode 100644 bintrees/index.d.ts create mode 100644 bintrees/tsconfig.json diff --git a/bintrees/bintrees-tests.ts b/bintrees/bintrees-tests.ts new file mode 100644 index 0000000000..d9acadac5c --- /dev/null +++ b/bintrees/bintrees-tests.ts @@ -0,0 +1,16 @@ +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..7fa0c25003 --- /dev/null +++ b/bintrees/index.d.ts @@ -0,0 +1,63 @@ +// 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" + ] +} From 99879bd684eb86fcd55f3fb85ccbe306a582f9de Mon Sep 17 00:00:00 2001 From: Cayle Sharrock Date: Wed, 30 Nov 2016 16:48:45 +0200 Subject: [PATCH 2/2] Formatting: Remove extra blank lines --- bintrees/bintrees-tests.ts | 2 -- bintrees/index.d.ts | 2 -- 2 files changed, 4 deletions(-) diff --git a/bintrees/bintrees-tests.ts b/bintrees/bintrees-tests.ts index d9acadac5c..707d8e0adf 100644 --- a/bintrees/bintrees-tests.ts +++ b/bintrees/bintrees-tests.ts @@ -12,5 +12,3 @@ treeB.insert('hi'); treeB.insert('there'); treeB.insert('how'); treeB.insert('are'); - - diff --git a/bintrees/index.d.ts b/bintrees/index.d.ts index 7fa0c25003..9853be67dc 100644 --- a/bintrees/index.d.ts +++ b/bintrees/index.d.ts @@ -58,6 +58,4 @@ declare module 'bintrees' { remove(item: T): boolean; } - - }