typescript-ds-lib 0.1.7 → 0.2.0
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 +3 -2
- package/dist/lib/binary-search-tree.d.ts +12 -34
- package/dist/lib/binary-search-tree.js +1 -1
- package/dist/lib/binary-search-tree.js.map +1 -1
- package/dist/lib/deque.d.ts +6 -32
- package/dist/lib/deque.js +1 -1
- package/dist/lib/deque.js.map +1 -1
- package/dist/lib/hash-table.d.ts +9 -8
- package/dist/lib/hash-table.js +1 -1
- package/dist/lib/hash-table.js.map +1 -1
- package/dist/lib/linked-list.d.ts +8 -34
- package/dist/lib/linked-list.js +1 -1
- package/dist/lib/linked-list.js.map +1 -1
- package/dist/lib/map.d.ts +7 -5
- package/dist/lib/map.js +2 -2
- package/dist/lib/map.js.map +1 -1
- package/dist/lib/matrix.d.ts +35 -0
- package/dist/lib/matrix.js +232 -0
- package/dist/lib/matrix.js.map +1 -0
- package/dist/lib/priority-queue.d.ts +6 -26
- package/dist/lib/priority-queue.js +1 -1
- package/dist/lib/priority-queue.js.map +1 -1
- package/dist/lib/queue.d.ts +9 -2
- package/dist/lib/queue.js +1 -1
- package/dist/lib/queue.js.map +1 -1
- package/dist/lib/red-black-tree.d.ts +12 -10
- package/dist/lib/red-black-tree.js +1 -1
- package/dist/lib/red-black-tree.js.map +1 -1
- package/dist/lib/set.d.ts +10 -26
- package/dist/lib/set.js +2 -2
- package/dist/lib/set.js.map +1 -1
- package/dist/lib/stack.d.ts +6 -23
- package/dist/lib/stack.js +1 -1
- package/dist/lib/stack.js.map +1 -1
- package/dist/tests/binary-search-tree.test.js +2 -2
- package/dist/tests/binary-search-tree.test.js.map +1 -1
- package/dist/tests/deque.test.js +4 -4
- package/dist/tests/deque.test.js.map +1 -1
- package/dist/tests/hash-table.test.js +2 -2
- package/dist/tests/hash-table.test.js.map +1 -1
- package/dist/tests/linked-list.test.js +3 -3
- package/dist/tests/linked-list.test.js.map +1 -1
- package/dist/tests/map.test.js +4 -4
- package/dist/tests/map.test.js.map +1 -1
- package/dist/tests/matrix.test.d.ts +1 -0
- package/dist/tests/matrix.test.js +188 -0
- package/dist/tests/matrix.test.js.map +1 -0
- package/dist/tests/priority-queue.test.js +3 -3
- package/dist/tests/priority-queue.test.js.map +1 -1
- package/dist/tests/queue.test.js +3 -3
- package/dist/tests/queue.test.js.map +1 -1
- package/dist/tests/red-black-tree.test.js +4 -4
- package/dist/tests/red-black-tree.test.js.map +1 -1
- package/dist/tests/set.test.js +2 -2
- package/dist/tests/set.test.js.map +1 -1
- package/dist/tests/stack.test.js +3 -3
- package/dist/tests/stack.test.js.map +1 -1
- package/dist/types/index.d.ts +0 -90
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -15,9 +15,9 @@ npm install typescript-ds-lib
|
|
|
15
15
|
|
|
16
16
|
## Usage
|
|
17
17
|
```typescript
|
|
18
|
-
import { Stack
|
|
18
|
+
import { Stack } from 'typescript-ds-lib';
|
|
19
19
|
|
|
20
|
-
const stack:
|
|
20
|
+
const stack: Stack<number> = new Stack<number>();
|
|
21
21
|
|
|
22
22
|
stack.push(1);
|
|
23
23
|
stack.push(2);
|
|
@@ -40,6 +40,7 @@ console.log(stack.size()); // 2
|
|
|
40
40
|
- Set
|
|
41
41
|
- Map
|
|
42
42
|
- Hash Table
|
|
43
|
+
- Matrix
|
|
43
44
|
|
|
44
45
|
|
|
45
46
|
## Documentation and Examples
|
|
@@ -1,42 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export
|
|
1
|
+
import { Comparator } from '../types';
|
|
2
|
+
export interface BinarySearchTree<T> {
|
|
3
|
+
insert(element: T): void;
|
|
4
|
+
remove(element: T): void;
|
|
5
|
+
find(element: T): boolean;
|
|
6
|
+
min(): T | undefined;
|
|
7
|
+
max(): T | undefined;
|
|
8
|
+
isEmpty(): boolean;
|
|
9
|
+
clear(): void;
|
|
10
|
+
count(): number;
|
|
11
|
+
}
|
|
12
|
+
export declare class BinarySearchTree<T> implements BinarySearchTree<T> {
|
|
3
13
|
private root;
|
|
4
14
|
private comparator;
|
|
5
15
|
constructor(comparator?: Comparator<T>);
|
|
6
|
-
/**
|
|
7
|
-
* Inserts a value into the BST
|
|
8
|
-
*/
|
|
9
|
-
insert(value: T): void;
|
|
10
|
-
/**
|
|
11
|
-
* Searches for a value in the BST. Returns true if found, false otherwise
|
|
12
|
-
*/
|
|
13
|
-
find(value: T): boolean;
|
|
14
|
-
/**
|
|
15
|
-
* Returns the minimum value in the BST, or undefined if tree is empty
|
|
16
|
-
*/
|
|
17
|
-
min(): T | undefined;
|
|
18
|
-
/**
|
|
19
|
-
* Returns the maximum value in the BST, or undefined if tree is empty
|
|
20
|
-
*/
|
|
21
|
-
max(): T | undefined;
|
|
22
|
-
/**
|
|
23
|
-
* Removes a value from the BST if it exists
|
|
24
|
-
*/
|
|
25
|
-
remove(value: T): void;
|
|
26
16
|
private removeNode;
|
|
27
17
|
private findMin;
|
|
28
18
|
private isEqual;
|
|
29
|
-
/**
|
|
30
|
-
* Returns true if the BST is empty, false otherwise
|
|
31
|
-
*/
|
|
32
|
-
empty(): boolean;
|
|
33
|
-
/**
|
|
34
|
-
* Removes all nodes from the BST
|
|
35
|
-
*/
|
|
36
|
-
clear(): void;
|
|
37
|
-
/**
|
|
38
|
-
* Returns the number of nodes in the BST
|
|
39
|
-
*/
|
|
40
|
-
count(): number;
|
|
41
19
|
private countNodes;
|
|
42
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary-search-tree.js","sourceRoot":"","sources":["../../lib/binary-search-tree.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"binary-search-tree.js","sourceRoot":"","sources":["../../lib/binary-search-tree.ts"],"names":[],"mappings":";;;AAeA,MAAM,QAAQ;IACZ,KAAK,CAAI;IACT,IAAI,CAAqB;IACzB,KAAK,CAAqB;IAE1B,YAAY,KAAQ;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;CACF;AAGD,MAAa,gBAAgB;IACnB,IAAI,CAAqB;IACzB,UAAU,CAAgB;IAElC,YAAY,aAA4B,CAAC,CAAI,EAAE,CAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;QAC3D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAQ;QACb,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;YACpB,OAAO;QACT,CAAC;QACD,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1C,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBAC1B,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC;oBACvB,MAAM;gBACR,CAAC;gBACD,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;oBAC3B,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC;oBACxB,MAAM;gBACR,CAAC;gBACD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,KAAQ;QACX,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,OAAO,OAAO,KAAK,IAAI,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1C,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,GAAG;QACD,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAEjC,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,OAAO,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC7B,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,CAAC;QACD,OAAO,OAAO,CAAC,KAAK,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,GAAG;QACD,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QACjC,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,OAAO,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YAC9B,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;QAC1B,CAAC;QACD,OAAO,OAAO,CAAC,KAAK,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAQ;QACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IAEO,UAAU,CAAC,IAAwB,EAAE,KAAQ;QACnD,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAE/B,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAChD,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,uBAAuB;YACvB,oBAAoB;YACpB,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC9C,OAAO,IAAI,CAAC;YACd,CAAC;YACD,8BAA8B;YAC9B,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC,KAAK,CAAC;YAC1C,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC,IAAI,CAAC;YAC1C,iCAAiC;YACjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YACxD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,OAAO,CAAC,IAAiB;QAC/B,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,OAAO,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC7B,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,OAAO,CAAC,CAAI,EAAE,CAAI;QACxB,yDAAyD;QACzD,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAEO,UAAU,CAAC,IAAwB;QACzC,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtE,CAAC;CACF;AAtJD,4CAsJC"}
|
package/dist/lib/deque.d.ts
CHANGED
|
@@ -1,41 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
export declare class Deque<T> implements DequeTy<T> {
|
|
3
|
-
private items;
|
|
4
|
-
constructor();
|
|
5
|
-
/**
|
|
6
|
-
* Adds an element to the front of the deque
|
|
7
|
-
*/
|
|
1
|
+
export interface Deque<T> {
|
|
8
2
|
pushFront(element: T): void;
|
|
9
|
-
/**
|
|
10
|
-
* Adds an element to the back of the deque
|
|
11
|
-
*/
|
|
12
3
|
pushBack(element: T): void;
|
|
13
|
-
/**
|
|
14
|
-
* Removes and returns the front element from the deque, or undefined if deque is empty
|
|
15
|
-
*/
|
|
16
4
|
popFront(): T | undefined;
|
|
17
|
-
/**
|
|
18
|
-
* Removes and returns the back element from the deque, or undefined if deque is empty
|
|
19
|
-
*/
|
|
20
5
|
popBack(): T | undefined;
|
|
21
|
-
/**
|
|
22
|
-
* Returns the front element without removing it, or undefined if deque is empty
|
|
23
|
-
*/
|
|
24
6
|
front(): T | undefined;
|
|
25
|
-
/**
|
|
26
|
-
* Returns the back element without removing it, or undefined if deque is empty
|
|
27
|
-
*/
|
|
28
7
|
back(): T | undefined;
|
|
29
|
-
|
|
30
|
-
* Returns true if the deque is empty, false otherwise
|
|
31
|
-
*/
|
|
32
|
-
empty(): boolean;
|
|
33
|
-
/**
|
|
34
|
-
* Returns the number of elements in the deque
|
|
35
|
-
*/
|
|
8
|
+
isEmpty(): boolean;
|
|
36
9
|
size(): number;
|
|
37
|
-
/**
|
|
38
|
-
* Removes all elements from the deque
|
|
39
|
-
*/
|
|
40
10
|
clear(): void;
|
|
41
11
|
}
|
|
12
|
+
export declare class Deque<T> implements Deque<T> {
|
|
13
|
+
private items;
|
|
14
|
+
constructor();
|
|
15
|
+
}
|
package/dist/lib/deque.js
CHANGED
package/dist/lib/deque.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deque.js","sourceRoot":"","sources":["../../lib/deque.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"deque.js","sourceRoot":"","sources":["../../lib/deque.ts"],"names":[],"mappings":";;;AAaA,MAAa,KAAK;IACR,KAAK,CAAM;IAEnB;QACE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,OAAU;QAClB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,OAAU;QACjB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClB,CAAC;CACF;AArED,sBAqEC"}
|
package/dist/lib/hash-table.d.ts
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
export interface HashTable<K, V> {
|
|
2
|
+
insert(key: K, value: V): void;
|
|
3
|
+
get(key: K): V | undefined;
|
|
4
|
+
remove(key: K): boolean;
|
|
5
|
+
size(): number;
|
|
6
|
+
isEmpty(): boolean;
|
|
7
|
+
clear(): void;
|
|
8
|
+
}
|
|
9
|
+
export declare class HashTable<K, V> implements HashTable<K, V> {
|
|
3
10
|
private table;
|
|
4
11
|
private count;
|
|
5
12
|
private readonly capacity;
|
|
6
13
|
constructor(capacity?: number);
|
|
7
14
|
private hash;
|
|
8
|
-
insert(key: K, value: V): void;
|
|
9
|
-
get(key: K): V | undefined;
|
|
10
|
-
remove(key: K): boolean;
|
|
11
15
|
private keysEqual;
|
|
12
|
-
size(): number;
|
|
13
|
-
empty(): boolean;
|
|
14
|
-
clear(): void;
|
|
15
16
|
}
|
package/dist/lib/hash-table.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hash-table.js","sourceRoot":"","sources":["../../lib/hash-table.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"hash-table.js","sourceRoot":"","sources":["../../lib/hash-table.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,43 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
export declare class LinkedList<T> implements LinkedListTy<T> {
|
|
3
|
-
private head;
|
|
4
|
-
private tail;
|
|
5
|
-
private length;
|
|
6
|
-
constructor();
|
|
7
|
-
/**
|
|
8
|
-
* Adds an element to the end of the list
|
|
9
|
-
*/
|
|
1
|
+
export interface LinkedList<T> {
|
|
10
2
|
pushBack(element: T): void;
|
|
11
|
-
/**
|
|
12
|
-
* Adds an element to the front of the list
|
|
13
|
-
*/
|
|
14
3
|
pushFront(element: T): void;
|
|
15
|
-
/**
|
|
16
|
-
* Inserts an element at the specified position. Returns true if successful, false if position is invalid
|
|
17
|
-
*/
|
|
18
4
|
insert(element: T, position: number): boolean;
|
|
19
|
-
/**
|
|
20
|
-
* Removes the first element that satisfies the predicate. Returns true if an element was removed, false otherwise.
|
|
21
|
-
*/
|
|
22
5
|
removeIf(condition: (element: T) => boolean): boolean;
|
|
23
|
-
/**
|
|
24
|
-
* Removes and returns the element at the specified position. Returns undefined if position is invalid
|
|
25
|
-
*/
|
|
26
6
|
removeAt(position: number): T | undefined;
|
|
27
|
-
/**
|
|
28
|
-
* Returns the element at the specified position without removing it. Returns undefined if position is invalid
|
|
29
|
-
*/
|
|
30
7
|
get(position: number): T | undefined;
|
|
31
|
-
|
|
32
|
-
* Returns true if the list is empty, false otherwise
|
|
33
|
-
*/
|
|
34
|
-
empty(): boolean;
|
|
35
|
-
/**
|
|
36
|
-
* Returns the number of elements in the list
|
|
37
|
-
*/
|
|
8
|
+
isEmpty(): boolean;
|
|
38
9
|
size(): number;
|
|
39
|
-
/**
|
|
40
|
-
* Removes all elements from the list
|
|
41
|
-
*/
|
|
42
10
|
clear(): void;
|
|
43
11
|
}
|
|
12
|
+
export declare class LinkedList<T> implements LinkedList<T> {
|
|
13
|
+
private head;
|
|
14
|
+
private tail;
|
|
15
|
+
private length;
|
|
16
|
+
constructor();
|
|
17
|
+
}
|
package/dist/lib/linked-list.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linked-list.js","sourceRoot":"","sources":["../../lib/linked-list.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"linked-list.js","sourceRoot":"","sources":["../../lib/linked-list.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/map.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export
|
|
3
|
-
private rbTree;
|
|
4
|
-
constructor(comparator?: Comparator<K>);
|
|
1
|
+
import { Comparator } from '../types';
|
|
2
|
+
export interface Map<K, V> {
|
|
5
3
|
insert(key: K, value: V): void;
|
|
6
4
|
find(key: K): V | undefined;
|
|
7
5
|
delete(key: K): void;
|
|
8
6
|
clear(): void;
|
|
7
|
+
isEmpty(): boolean;
|
|
9
8
|
size(): number;
|
|
10
|
-
|
|
9
|
+
}
|
|
10
|
+
export declare class Map<K, V> implements Map<K, V> {
|
|
11
|
+
private rbTree;
|
|
12
|
+
constructor(comparator?: Comparator<K>);
|
|
11
13
|
}
|
package/dist/lib/map.js
CHANGED
package/dist/lib/map.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../lib/map.ts"],"names":[],"mappings":";;;AACA,qDAAgD;
|
|
1
|
+
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../lib/map.ts"],"names":[],"mappings":";;;AACA,qDAAgD;AAahD,MAAa,GAAG;IACN,MAAM,CAAqB;IAEnC,YAAY,aAA4B,CAAC,CAAI,EAAE,CAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;QAC3D,IAAI,CAAC,MAAM,GAAG,IAAI,6BAAY,CAAO,UAAU,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,GAAM,EAAE,KAAQ;QACrB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,CAAC,GAAM;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,GAAM;QACX,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IAC/B,CAAC;CACF;AA9BD,kBA8BC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface Matrix<T> {
|
|
2
|
+
get(row: number, col: number): T | undefined;
|
|
3
|
+
set(row: number, col: number, value: T): void;
|
|
4
|
+
rows(): number;
|
|
5
|
+
columns(): number;
|
|
6
|
+
fill(value: T): void;
|
|
7
|
+
clear(): void;
|
|
8
|
+
isEmpty(): boolean;
|
|
9
|
+
size(): number;
|
|
10
|
+
transpose(): Matrix<T>;
|
|
11
|
+
add(other: Matrix<T>): Matrix<T>;
|
|
12
|
+
subtract(other: Matrix<T>): Matrix<T>;
|
|
13
|
+
multiply(other: Matrix<T>): Matrix<T>;
|
|
14
|
+
map(fn: (value: T, row: number, col: number) => T): Matrix<T>;
|
|
15
|
+
forEach(fn: (value: T, row: number, col: number) => void): void;
|
|
16
|
+
clone(): Matrix<T>;
|
|
17
|
+
toArray(): T[][];
|
|
18
|
+
getRow(row: number): T[];
|
|
19
|
+
getColumn(col: number): T[];
|
|
20
|
+
setRow(row: number, values: T[]): void;
|
|
21
|
+
setColumn(col: number, values: T[]): void;
|
|
22
|
+
resize(rows: number, cols: number): void;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* A generic matrix implementation that supports basic matrix operations.
|
|
26
|
+
*/
|
|
27
|
+
export declare class Matrix<T> implements Matrix<T> {
|
|
28
|
+
private data;
|
|
29
|
+
private numRows;
|
|
30
|
+
private numCols;
|
|
31
|
+
/**
|
|
32
|
+
* Creates a new matrix with the specified dimensions.
|
|
33
|
+
*/
|
|
34
|
+
constructor(rows: number, cols: number);
|
|
35
|
+
}
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Matrix = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* A generic matrix implementation that supports basic matrix operations.
|
|
6
|
+
*/
|
|
7
|
+
class Matrix {
|
|
8
|
+
data; // The 2D array storing matrix elements
|
|
9
|
+
numRows; // Number of rows in the matrix
|
|
10
|
+
numCols; // Number of columns in the matrix
|
|
11
|
+
/**
|
|
12
|
+
* Creates a new matrix with the specified dimensions.
|
|
13
|
+
*/
|
|
14
|
+
constructor(rows, cols) {
|
|
15
|
+
this.numRows = rows;
|
|
16
|
+
this.numCols = cols;
|
|
17
|
+
this.data = Array(rows).fill(null).map(() => Array(cols).fill(undefined));
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Gets the value at the specified position. The value at [row,col] or undefined if out of bounds.
|
|
21
|
+
*/
|
|
22
|
+
get(row, col) {
|
|
23
|
+
if (row < 0 || row >= this.numRows || col < 0 || col >= this.numCols) {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
return this.data[row][col];
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Sets a value at the specified position.
|
|
30
|
+
*/
|
|
31
|
+
set(row, col, value) {
|
|
32
|
+
if (row < 0 || row >= this.numRows || col < 0 || col >= this.numCols) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
this.data[row][col] = value;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Returns the number of rows in the matrix.
|
|
39
|
+
*/
|
|
40
|
+
rows() {
|
|
41
|
+
return this.numRows;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Returns the number of columns in the matrix.
|
|
45
|
+
*/
|
|
46
|
+
columns() {
|
|
47
|
+
return this.numCols;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Fills the entire matrix with a value.
|
|
51
|
+
*/
|
|
52
|
+
fill(value) {
|
|
53
|
+
this.data = Array(this.numRows).fill(null).map(() => Array(this.numCols).fill(value));
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Clears the matrix by setting all elements to undefined.
|
|
57
|
+
*/
|
|
58
|
+
clear() {
|
|
59
|
+
this.data = Array(this.numRows).fill(null).map(() => Array(this.numCols).fill(undefined));
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Checks if the matrix is empty (has zero dimensions).
|
|
63
|
+
*/
|
|
64
|
+
isEmpty() {
|
|
65
|
+
return this.numRows === 0 || this.numCols === 0;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Returns the total number of elements in the matrix.
|
|
69
|
+
*/
|
|
70
|
+
size() {
|
|
71
|
+
return this.numRows * this.numCols;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Creates a new matrix that is the transpose of this matrix.
|
|
75
|
+
*/
|
|
76
|
+
transpose() {
|
|
77
|
+
const result = new Matrix(this.numCols, this.numRows);
|
|
78
|
+
for (let i = 0; i < this.numRows; i++) {
|
|
79
|
+
for (let j = 0; j < this.numCols; j++) {
|
|
80
|
+
result.set(j, i, this.data[i][j]);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return result;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Adds another matrix to this one.
|
|
87
|
+
*/
|
|
88
|
+
add(other) {
|
|
89
|
+
if (this.numRows !== other.rows() || this.numCols !== other.columns()) {
|
|
90
|
+
throw new Error('Matrix dimensions must match for addition');
|
|
91
|
+
}
|
|
92
|
+
const result = new Matrix(this.numRows, this.numCols);
|
|
93
|
+
for (let i = 0; i < this.numRows; i++) {
|
|
94
|
+
for (let j = 0; j < this.numCols; j++) {
|
|
95
|
+
const sum = this.data[i][j] + other.get(i, j);
|
|
96
|
+
result.set(i, j, sum);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return result;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Subtracts another matrix from this one.
|
|
103
|
+
*/
|
|
104
|
+
subtract(other) {
|
|
105
|
+
if (this.numRows !== other.rows() || this.numCols !== other.columns()) {
|
|
106
|
+
throw new Error('Matrix dimensions must match for subtraction');
|
|
107
|
+
}
|
|
108
|
+
const result = new Matrix(this.numRows, this.numCols);
|
|
109
|
+
for (let i = 0; i < this.numRows; i++) {
|
|
110
|
+
for (let j = 0; j < this.numCols; j++) {
|
|
111
|
+
const diff = this.data[i][j] - other.get(i, j);
|
|
112
|
+
result.set(i, j, diff);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return result;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Multiplies this matrix with another matrix.
|
|
119
|
+
*/
|
|
120
|
+
multiply(other) {
|
|
121
|
+
if (this.numCols !== other.rows()) {
|
|
122
|
+
throw new Error('Matrix dimensions must be compatible for multiplication');
|
|
123
|
+
}
|
|
124
|
+
const result = new Matrix(this.numRows, other.columns());
|
|
125
|
+
for (let i = 0; i < this.numRows; i++) {
|
|
126
|
+
for (let j = 0; j < other.columns(); j++) {
|
|
127
|
+
let sum = 0;
|
|
128
|
+
for (let k = 0; k < this.numCols; k++) {
|
|
129
|
+
sum += this.data[i][k] * other.get(k, j);
|
|
130
|
+
}
|
|
131
|
+
result.set(i, j, sum);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return result;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Applies a function to each element and returns a new matrix.
|
|
138
|
+
*/
|
|
139
|
+
map(fn) {
|
|
140
|
+
const result = new Matrix(this.numRows, this.numCols);
|
|
141
|
+
for (let i = 0; i < this.numRows; i++) {
|
|
142
|
+
for (let j = 0; j < this.numCols; j++) {
|
|
143
|
+
result.set(i, j, fn(this.data[i][j], i, j));
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return result;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Executes a function for each element in the matrix.
|
|
150
|
+
*/
|
|
151
|
+
forEach(fn) {
|
|
152
|
+
for (let i = 0; i < this.numRows; i++) {
|
|
153
|
+
for (let j = 0; j < this.numCols; j++) {
|
|
154
|
+
fn(this.data[i][j], i, j);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Creates a deep copy of this matrix.
|
|
160
|
+
*/
|
|
161
|
+
clone() {
|
|
162
|
+
const result = new Matrix(this.numRows, this.numCols);
|
|
163
|
+
for (let i = 0; i < this.numRows; i++) {
|
|
164
|
+
for (let j = 0; j < this.numCols; j++) {
|
|
165
|
+
result.set(i, j, this.data[i][j]);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
return result;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Converts the matrix to a 2D array.
|
|
172
|
+
*/
|
|
173
|
+
toArray() {
|
|
174
|
+
return this.data.map(row => [...row]);
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Gets a copy of the specified row.
|
|
178
|
+
*/
|
|
179
|
+
getRow(row) {
|
|
180
|
+
if (row < 0 || row >= this.numRows) {
|
|
181
|
+
return [];
|
|
182
|
+
}
|
|
183
|
+
return [...this.data[row]];
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Gets a copy of the specified column.
|
|
187
|
+
*/
|
|
188
|
+
getColumn(col) {
|
|
189
|
+
if (col < 0 || col >= this.numCols) {
|
|
190
|
+
return [];
|
|
191
|
+
}
|
|
192
|
+
return this.data.map(row => row[col]);
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Sets values for an entire row.
|
|
196
|
+
*/
|
|
197
|
+
setRow(row, values) {
|
|
198
|
+
if (row < 0 || row >= this.numRows || values.length !== this.numCols) {
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
this.data[row] = [...values];
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Sets values for an entire column.
|
|
205
|
+
*/
|
|
206
|
+
setColumn(col, values) {
|
|
207
|
+
if (col < 0 || col >= this.numCols || values.length !== this.numRows) {
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
for (let i = 0; i < this.numRows; i++) {
|
|
211
|
+
this.data[i][col] = values[i];
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Resizes the matrix to new dimensions, preserving existing values where possible.
|
|
216
|
+
*/
|
|
217
|
+
resize(rows, cols) {
|
|
218
|
+
const newData = Array(rows).fill(null).map(() => Array(cols).fill(undefined));
|
|
219
|
+
const minRows = Math.min(rows, this.numRows);
|
|
220
|
+
const minCols = Math.min(cols, this.numCols);
|
|
221
|
+
for (let i = 0; i < minRows; i++) {
|
|
222
|
+
for (let j = 0; j < minCols; j++) {
|
|
223
|
+
newData[i][j] = this.data[i][j];
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
this.data = newData;
|
|
227
|
+
this.numRows = rows;
|
|
228
|
+
this.numCols = cols;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
exports.Matrix = Matrix;
|
|
232
|
+
//# sourceMappingURL=matrix.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matrix.js","sourceRoot":"","sources":["../../lib/matrix.ts"],"names":[],"mappings":"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"}
|