nlptoolkit-datastructure 1.0.3 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/Queue.d.ts +10 -0
- package/dist/Queue.js +36 -0
- package/dist/Queue.js.map +1 -0
- package/dist/heap/Heap.d.ts +2 -2
- package/dist/heap/Heap.js.map +1 -1
- package/dist/heap/MaxHeap.d.ts +1 -1
- package/dist/heap/MaxHeap.js.map +1 -1
- package/dist/heap/MinHeap.d.ts +1 -1
- package/dist/heap/MinHeap.js.map +1 -1
- package/package.json +1 -1
- package/source/Queue.ts +30 -0
- package/source/heap/Heap.ts +2 -2
- package/source/heap/MaxHeap.ts +1 -1
- package/source/heap/MinHeap.ts +1 -1
- package/tests/HeapTest.ts +2 -5
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@ For Developers
|
|
|
7
7
|
============
|
|
8
8
|
|
|
9
9
|
You can also see [Java](https://github.com/starlangsoftware/DataStructure), [Python](https://github.com/starlangsoftware/DataStructure-Py),
|
|
10
|
-
[Cython](https://github.com/starlangsoftware/DataStructure-Cy), [Swift](https://github.com/starlangsoftware/DataStructure-Swift),
|
|
10
|
+
[Cython](https://github.com/starlangsoftware/DataStructure-Cy), [Swift](https://github.com/starlangsoftware/DataStructure-Swift), [C](https://github.com/starlangsoftware/DataStructure-C),
|
|
11
11
|
[C#](https://github.com/starlangsoftware/DataStructure-CS), or [C++](https://github.com/starlangsoftware/DataStructure-CPP) repository.
|
|
12
12
|
|
|
13
13
|
## Requirements
|
package/dist/Queue.d.ts
ADDED
package/dist/Queue.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
(function (factory) {
|
|
2
|
+
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
|
+
var v = factory(require, exports);
|
|
4
|
+
if (v !== undefined) module.exports = v;
|
|
5
|
+
}
|
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
|
7
|
+
define(["require", "exports"], factory);
|
|
8
|
+
}
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.Queue = void 0;
|
|
13
|
+
class Queue {
|
|
14
|
+
constructor(maxSize) {
|
|
15
|
+
this.list = [];
|
|
16
|
+
this.head = 0;
|
|
17
|
+
this.tail = 0;
|
|
18
|
+
this.maxSize = maxSize;
|
|
19
|
+
this.list = new Array(maxSize);
|
|
20
|
+
}
|
|
21
|
+
enqueue(item) {
|
|
22
|
+
this.list[this.tail] = item;
|
|
23
|
+
this.tail = (this.tail + 1) % this.maxSize;
|
|
24
|
+
}
|
|
25
|
+
dequeue() {
|
|
26
|
+
let item = this.list[this.head];
|
|
27
|
+
this.head = (this.head + 1) % this.maxSize;
|
|
28
|
+
return item;
|
|
29
|
+
}
|
|
30
|
+
isEmpty() {
|
|
31
|
+
return this.head == this.tail;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.Queue = Queue;
|
|
35
|
+
});
|
|
36
|
+
//# sourceMappingURL=Queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Queue.js","sourceRoot":"","sources":["../source/Queue.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,MAAa,KAAK;QAOd,YAAY,OAAe;YALnB,SAAI,GAAc,EAAE,CAAA;YAMxB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;YACb,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;YACb,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;YACtB,IAAI,CAAC,IAAI,GAAG,IAAI,KAAK,CAAI,OAAO,CAAC,CAAA;QACrC,CAAC;QAEM,OAAO,CAAC,IAAO;YAClB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;YAC3B,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAA;QAC9C,CAAC;QAEM,OAAO;YACV,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC/B,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAA;YAC1C,OAAO,IAAI,CAAA;QACf,CAAC;QAEM,OAAO;YACV,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAA;QACjC,CAAC;KAEJ;IA7BD,sBA6BC"}
|
package/dist/heap/Heap.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export declare class Heap<T> {
|
|
2
2
|
private readonly array;
|
|
3
|
-
protected comparator:
|
|
3
|
+
protected comparator: (item1: T, item2: T) => number;
|
|
4
4
|
private count;
|
|
5
5
|
private n;
|
|
6
|
-
constructor(N: number, comparator:
|
|
6
|
+
constructor(N: number, comparator: (item1: T, item2: T) => number);
|
|
7
7
|
compare(data1: T, data2: T): number;
|
|
8
8
|
isEmpty(): boolean;
|
|
9
9
|
private swapNode;
|
package/dist/heap/Heap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Heap.js","sourceRoot":"","sources":["../../source/heap/Heap.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,yCAAoC;IAEpC,MAAa,IAAI;QAOb,YAAY,CAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"Heap.js","sourceRoot":"","sources":["../../source/heap/Heap.ts"],"names":[],"mappings":"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"}
|
package/dist/heap/MaxHeap.d.ts
CHANGED
package/dist/heap/MaxHeap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaxHeap.js","sourceRoot":"","sources":["../../source/heap/MaxHeap.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,iCAA4B;IAG5B,MAAa,OAAW,SAAQ,WAAO;QAEnC,YAAY,CAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"MaxHeap.js","sourceRoot":"","sources":["../../source/heap/MaxHeap.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,iCAA4B;IAG5B,MAAa,OAAW,SAAQ,WAAO;QAEnC,YAAY,CAAS,EAAE,UAA0C;YAC7D,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;QACxB,CAAC;QAED,OAAO,CAAC,KAAQ,EAAE,KAAQ;YACtB,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QACxC,CAAC;KAEJ;IAVD,0BAUC"}
|
package/dist/heap/MinHeap.d.ts
CHANGED
package/dist/heap/MinHeap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MinHeap.js","sourceRoot":"","sources":["../../source/heap/MinHeap.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,iCAA4B;IAE5B,MAAa,OAAW,SAAQ,WAAO;QAEnC,YAAY,CAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"MinHeap.js","sourceRoot":"","sources":["../../source/heap/MinHeap.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,iCAA4B;IAE5B,MAAa,OAAW,SAAQ,WAAO;QAEnC,YAAY,CAAS,EAAE,UAA0C;YAC7D,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;QACxB,CAAC;QAED,OAAO,CAAC,KAAQ,EAAE,KAAQ;YACtB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QACzC,CAAC;KAEJ;IAVD,0BAUC"}
|
package/package.json
CHANGED
package/source/Queue.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export class Queue<T> {
|
|
2
|
+
|
|
3
|
+
private list : Array<T> = []
|
|
4
|
+
private head : number
|
|
5
|
+
private tail : number
|
|
6
|
+
private maxSize: number
|
|
7
|
+
|
|
8
|
+
constructor(maxSize: number) {
|
|
9
|
+
this.head = 0
|
|
10
|
+
this.tail = 0
|
|
11
|
+
this.maxSize = maxSize
|
|
12
|
+
this.list = new Array<T>(maxSize)
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
public enqueue(item: T){
|
|
16
|
+
this.list[this.tail] = item
|
|
17
|
+
this.tail = (this.tail + 1) % this.maxSize
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
public dequeue(): T{
|
|
21
|
+
let item = this.list[this.head]
|
|
22
|
+
this.head = (this.head + 1) % this.maxSize
|
|
23
|
+
return item
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
public isEmpty(): boolean{
|
|
27
|
+
return this.head == this.tail
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
}
|
package/source/heap/Heap.ts
CHANGED
|
@@ -3,11 +3,11 @@ import {HeapNode} from "./HeapNode";
|
|
|
3
3
|
export class Heap<T> {
|
|
4
4
|
|
|
5
5
|
private readonly array: Array<HeapNode<T>>
|
|
6
|
-
protected comparator :
|
|
6
|
+
protected comparator : (item1: T, item2: T) => number
|
|
7
7
|
private count: number
|
|
8
8
|
private n: number
|
|
9
9
|
|
|
10
|
-
constructor(N: number, comparator:
|
|
10
|
+
constructor(N: number, comparator: (item1: T, item2: T) => number){
|
|
11
11
|
this.comparator = comparator
|
|
12
12
|
this.array = new Array<HeapNode<T>>()
|
|
13
13
|
this.count = 0
|
package/source/heap/MaxHeap.ts
CHANGED
package/source/heap/MinHeap.ts
CHANGED
package/tests/HeapTest.ts
CHANGED
|
@@ -4,11 +4,8 @@ import {MinHeap} from "../dist/heap/MinHeap";
|
|
|
4
4
|
|
|
5
5
|
describe('HeapTest', function() {
|
|
6
6
|
describe('HeapTest', function() {
|
|
7
|
-
function compare
|
|
8
|
-
|
|
9
|
-
return item1 - item2
|
|
10
|
-
}
|
|
11
|
-
return 0
|
|
7
|
+
function compare(item1: number, item2: number): number {
|
|
8
|
+
return item1 - item2
|
|
12
9
|
}
|
|
13
10
|
it('testMaxHeap', function() {
|
|
14
11
|
let maxHeap : MaxHeap<number> = new MaxHeap<number>(8, compare)
|