typescript-ds-lib 0.3.1 → 0.3.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.
Files changed (45) hide show
  1. package/README.md +9 -7
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.js +3 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/base-collection.d.ts +14 -0
  6. package/dist/lib/base-collection.js +7 -0
  7. package/dist/lib/base-collection.js.map +1 -0
  8. package/dist/lib/binary-search-tree.d.ts +14 -3
  9. package/dist/lib/binary-search-tree.js +11 -2
  10. package/dist/lib/binary-search-tree.js.map +1 -1
  11. package/dist/lib/deque.d.ts +14 -4
  12. package/dist/lib/deque.js +3 -1
  13. package/dist/lib/deque.js.map +1 -1
  14. package/dist/lib/hash-table-utils.js.map +1 -1
  15. package/dist/lib/hash-table.d.ts +6 -4
  16. package/dist/lib/hash-table.js +13 -2
  17. package/dist/lib/hash-table.js.map +1 -1
  18. package/dist/lib/heap.d.ts +32 -0
  19. package/dist/lib/heap.js +101 -0
  20. package/dist/lib/heap.js.map +1 -0
  21. package/dist/lib/linked-list.d.ts +14 -4
  22. package/dist/lib/linked-list.js +5 -3
  23. package/dist/lib/linked-list.js.map +1 -1
  24. package/dist/lib/map.d.ts +5 -4
  25. package/dist/lib/map.js +3 -1
  26. package/dist/lib/map.js.map +1 -1
  27. package/dist/lib/matrix.d.ts +14 -4
  28. package/dist/lib/matrix.js +3 -1
  29. package/dist/lib/matrix.js.map +1 -1
  30. package/dist/lib/priority-queue.d.ts +15 -4
  31. package/dist/lib/priority-queue.js +14 -20
  32. package/dist/lib/priority-queue.js.map +1 -1
  33. package/dist/lib/queue.d.ts +14 -4
  34. package/dist/lib/queue.js +3 -1
  35. package/dist/lib/queue.js.map +1 -1
  36. package/dist/lib/red-black-tree.d.ts +5 -4
  37. package/dist/lib/red-black-tree.js +5 -3
  38. package/dist/lib/red-black-tree.js.map +1 -1
  39. package/dist/lib/set.d.ts +14 -4
  40. package/dist/lib/set.js +3 -1
  41. package/dist/lib/set.js.map +1 -1
  42. package/dist/lib/stack.d.ts +14 -4
  43. package/dist/lib/stack.js +12 -9
  44. package/dist/lib/stack.js.map +1 -1
  45. package/package.json +1 -1
package/README.md CHANGED
@@ -9,6 +9,7 @@ TypeScript data structure implementations without external dependencies. Why to
9
9
  - Lightweight
10
10
  - Comes with Comparator (for custom types)
11
11
  - `hashCode()` and `equals()` are supported
12
+ - Well documented
12
13
 
13
14
 
14
15
  ## Install
@@ -39,17 +40,18 @@ See the [documentation](https://github.com/baloian/typescript-ds-lib/blob/master
39
40
 
40
41
 
41
42
  ## Data Structures
42
- - Stack
43
- - Queue
44
- - Priority Queue
45
- - Linked List
46
43
  - Binary Search Tree
47
- - Red-Black Tree
48
44
  - Deque
49
- - Set
50
- - Map
51
45
  - Hash Table (unordered map)
46
+ - Heap
47
+ - Linked List
48
+ - Map
52
49
  - Matrix
50
+ - Priority Queue
51
+ - Queue
52
+ - Red-Black Tree
53
+ - Set
54
+ - Stack
53
55
  - Graph (coming soon)
54
56
 
55
57
  **Note:** The `Map` data structure is implemented as a Red-Black Tree and the `Set` data structure is implemented as a Binary Search Tree.
package/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ export * from './types';
2
2
  export { BinarySearchTree } from './lib/binary-search-tree';
3
3
  export { Deque } from './lib/deque';
4
4
  export { HashTable } from './lib/hash-table';
5
+ export { Heap } from './lib/heap';
5
6
  export { LinkedList } from './lib/linked-list';
6
7
  export { Map } from './lib/map';
7
8
  export { Matrix } from './lib/matrix';
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.Stack = exports.Set = exports.RedBlackTree = exports.Queue = exports.PriorityQueue = exports.Matrix = exports.Map = exports.LinkedList = exports.HashTable = exports.Deque = exports.BinarySearchTree = void 0;
17
+ exports.Stack = exports.Set = exports.RedBlackTree = exports.Queue = exports.PriorityQueue = exports.Matrix = exports.Map = exports.LinkedList = exports.Heap = exports.HashTable = exports.Deque = exports.BinarySearchTree = void 0;
18
18
  __exportStar(require("./types"), exports);
19
19
  var binary_search_tree_1 = require("./lib/binary-search-tree");
20
20
  Object.defineProperty(exports, "BinarySearchTree", { enumerable: true, get: function () { return binary_search_tree_1.BinarySearchTree; } });
@@ -22,6 +22,8 @@ var deque_1 = require("./lib/deque");
22
22
  Object.defineProperty(exports, "Deque", { enumerable: true, get: function () { return deque_1.Deque; } });
23
23
  var hash_table_1 = require("./lib/hash-table");
24
24
  Object.defineProperty(exports, "HashTable", { enumerable: true, get: function () { return hash_table_1.HashTable; } });
25
+ var heap_1 = require("./lib/heap");
26
+ Object.defineProperty(exports, "Heap", { enumerable: true, get: function () { return heap_1.Heap; } });
25
27
  var linked_list_1 = require("./lib/linked-list");
26
28
  Object.defineProperty(exports, "LinkedList", { enumerable: true, get: function () { return linked_list_1.LinkedList; } });
27
29
  var map_1 = require("./lib/map");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,+DAA4D;AAAnD,sHAAA,gBAAgB,OAAA;AACzB,qCAAoC;AAA3B,8FAAA,KAAK,OAAA;AACd,+CAA6C;AAApC,uGAAA,SAAS,OAAA;AAClB,iDAA+C;AAAtC,yGAAA,UAAU,OAAA;AACnB,iCAAgC;AAAvB,0FAAA,GAAG,OAAA;AACZ,uCAAsC;AAA7B,gGAAA,MAAM,OAAA;AACf,uDAAqD;AAA5C,+GAAA,aAAa,OAAA;AACtB,qCAAoC;AAA3B,8FAAA,KAAK,OAAA;AACd,uDAAoD;AAA3C,8GAAA,YAAY,OAAA;AACrB,iCAAgC;AAAvB,0FAAA,GAAG,OAAA;AACZ,qCAAoC;AAA3B,8FAAA,KAAK,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,+DAA4D;AAAnD,sHAAA,gBAAgB,OAAA;AACzB,qCAAoC;AAA3B,8FAAA,KAAK,OAAA;AACd,+CAA6C;AAApC,uGAAA,SAAS,OAAA;AAClB,mCAAkC;AAAzB,4FAAA,IAAI,OAAA;AACb,iDAA+C;AAAtC,yGAAA,UAAU,OAAA;AACnB,iCAAgC;AAAvB,0FAAA,GAAG,OAAA;AACZ,uCAAsC;AAA7B,gGAAA,MAAM,OAAA;AACf,uDAAqD;AAA5C,+GAAA,aAAa,OAAA;AACtB,qCAAoC;AAA3B,8FAAA,KAAK,OAAA;AACd,uDAAoD;AAA3C,8GAAA,YAAY,OAAA;AACrB,iCAAgC;AAAvB,0FAAA,GAAG,OAAA;AACZ,qCAAoC;AAA3B,8FAAA,KAAK,OAAA"}
@@ -0,0 +1,14 @@
1
+ export declare abstract class BaseCollection<T> {
2
+ /**
3
+ * Checks if the collection is empty. Returns true if the collection is empty, false otherwise.
4
+ */
5
+ abstract isEmpty(): boolean;
6
+ /**
7
+ * Returns the number of elements in the collection.
8
+ */
9
+ abstract size(): number;
10
+ /**
11
+ * Removes all elements from the collection.
12
+ */
13
+ abstract clear(): void;
14
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseCollection = void 0;
4
+ class BaseCollection {
5
+ }
6
+ exports.BaseCollection = BaseCollection;
7
+ //# sourceMappingURL=base-collection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-collection.js","sourceRoot":"","sources":["../../lib/base-collection.ts"],"names":[],"mappings":";;;AAAA,MAAsB,cAAc;CAenC;AAfD,wCAeC"}
@@ -1,4 +1,5 @@
1
1
  import { Comparator } from '../types';
2
+ import { BaseCollection } from './base-collection';
2
3
  export interface BinarySearchTree<T> {
3
4
  insert(element: T): void;
4
5
  remove(element: T): void;
@@ -6,11 +7,9 @@ export interface BinarySearchTree<T> {
6
7
  min(): T | undefined;
7
8
  max(): T | undefined;
8
9
  forEach(callback: (element: T) => void, traversal?: 'inorder' | 'preorder' | 'postorder'): void;
9
- isEmpty(): boolean;
10
- clear(): void;
11
10
  count(): number;
12
11
  }
13
- export declare class BinarySearchTree<T> implements BinarySearchTree<T> {
12
+ export declare class BinarySearchTree<T> extends BaseCollection<T> implements BinarySearchTree<T> {
14
13
  private root;
15
14
  private comparator;
16
15
  constructor(comparator?: Comparator<T>);
@@ -20,5 +19,17 @@ export declare class BinarySearchTree<T> implements BinarySearchTree<T> {
20
19
  private inorderTraversal;
21
20
  private preorderTraversal;
22
21
  private postorderTraversal;
22
+ /**
23
+ * Returns true if the BST is empty, false otherwise
24
+ */
25
+ isEmpty(): boolean;
26
+ /**
27
+ * Removes all nodes from the BST
28
+ */
29
+ clear(): void;
30
+ /**
31
+ * Returns the number of nodes in the BST.
32
+ */
33
+ size(): number;
23
34
  private countNodes;
24
35
  }
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BinarySearchTree = void 0;
4
+ const base_collection_1 = require("./base-collection");
4
5
  class TreeNode {
5
6
  value;
6
7
  left;
@@ -11,10 +12,11 @@ class TreeNode {
11
12
  this.right = null;
12
13
  }
13
14
  }
14
- class BinarySearchTree {
15
+ class BinarySearchTree extends base_collection_1.BaseCollection {
15
16
  root;
16
17
  comparator;
17
18
  constructor(comparator = (a, b) => a < b) {
19
+ super();
18
20
  this.root = null;
19
21
  this.comparator = comparator;
20
22
  }
@@ -185,7 +187,14 @@ class BinarySearchTree {
185
187
  this.root = null;
186
188
  }
187
189
  /**
188
- * Returns the number of nodes in the BST
190
+ * Returns the number of nodes in the BST.
191
+ */
192
+ size() {
193
+ return this.countNodes(this.root);
194
+ }
195
+ /**
196
+ * Returns the number of nodes in the BST.
197
+ * TODO: I should remove this method and use size() instead.
189
198
  */
190
199
  count() {
191
200
  return this.countNodes(this.root);
@@ -1 +1 @@
1
- {"version":3,"file":"binary-search-tree.js","sourceRoot":"","sources":["../../lib/binary-search-tree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"binary-search-tree.js","sourceRoot":"","sources":["../../lib/binary-search-tree.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { BaseCollection } from './base-collection';
1
2
  export interface Deque<T> {
2
3
  pushFront(element: T): void;
3
4
  pushBack(element: T): void;
@@ -5,11 +6,20 @@ export interface Deque<T> {
5
6
  popBack(): T | undefined;
6
7
  front(): T | undefined;
7
8
  back(): T | undefined;
8
- isEmpty(): boolean;
9
- size(): number;
10
- clear(): void;
11
9
  }
12
- export declare class Deque<T> implements Deque<T> {
10
+ export declare class Deque<T> extends BaseCollection<T> implements Deque<T> {
13
11
  private items;
14
12
  constructor();
13
+ /**
14
+ * Returns true if the deque is empty, false otherwise
15
+ */
16
+ isEmpty(): boolean;
17
+ /**
18
+ * Returns the number of elements in the deque
19
+ */
20
+ size(): number;
21
+ /**
22
+ * Removes all elements from the deque
23
+ */
24
+ clear(): void;
15
25
  }
package/dist/lib/deque.js CHANGED
@@ -2,9 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Deque = void 0;
4
4
  const linked_list_1 = require("./linked-list");
5
- class Deque {
5
+ const base_collection_1 = require("./base-collection");
6
+ class Deque extends base_collection_1.BaseCollection {
6
7
  items;
7
8
  constructor() {
9
+ super();
8
10
  this.items = new linked_list_1.LinkedList();
9
11
  }
10
12
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"deque.js","sourceRoot":"","sources":["../../lib/deque.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAgB3C,MAAa,KAAK;IACR,KAAK,CAAgB;IAE7B;QACE,IAAI,CAAC,KAAK,GAAG,IAAI,wBAAU,EAAK,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,OAAU;QAClB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,OAAU;QACjB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF;AArED,sBAqEC"}
1
+ {"version":3,"file":"deque.js","sourceRoot":"","sources":["../../lib/deque.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAC3C,uDAAmD;AAanD,MAAa,KAAS,SAAQ,gCAAiB;IACrC,KAAK,CAAgB;IAE7B;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,IAAI,wBAAU,EAAK,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,OAAU;QAClB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,OAAU;QACjB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF;AAtED,sBAsEC"}
@@ -1 +1 @@
1
- {"version":3,"file":"hash-table-utils.js","sourceRoot":"","sources":["../../lib/hash-table-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hash-table-utils.js","sourceRoot":"","sources":["../../lib/hash-table-utils.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,16 @@
1
+ import { BaseCollection } from './base-collection';
1
2
  export interface HashTable<K, V> {
2
3
  insert(key: K, value: V): void;
3
4
  get(key: K): V | undefined;
4
5
  remove(key: K): boolean;
5
- size(): number;
6
- isEmpty(): boolean;
7
- clear(): void;
6
+ forEach(callback: (key: K, value: V) => void): void;
8
7
  }
9
- export declare class HashTable<K, V> implements HashTable<K, V> {
8
+ export declare class HashTable<K, V> extends BaseCollection<V> implements HashTable<K, V> {
10
9
  private table;
11
10
  private count;
12
11
  private readonly capacity;
13
12
  constructor(capacity?: number);
13
+ size(): number;
14
+ isEmpty(): boolean;
15
+ clear(): void;
14
16
  }
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.HashTable = void 0;
4
4
  const hash_table_utils_1 = require("./hash-table-utils");
5
+ const base_collection_1 = require("./base-collection");
5
6
  class HashNode {
6
7
  key;
7
8
  value;
@@ -12,11 +13,12 @@ class HashNode {
12
13
  this.next = null;
13
14
  }
14
15
  }
15
- class HashTable {
16
+ class HashTable extends base_collection_1.BaseCollection {
16
17
  table;
17
18
  count;
18
19
  capacity;
19
20
  constructor(capacity = 4096) {
21
+ super();
20
22
  // Handle negative or zero capacity by using default capacity
21
23
  this.capacity = capacity <= 0 ? 4096 : capacity;
22
24
  this.table = new Array(this.capacity).fill(null);
@@ -37,7 +39,7 @@ class HashTable {
37
39
  }
38
40
  // Traverse chain to find key or last node. If it matches, update the value.
39
41
  let current = this.table[index];
40
- while (current.next) {
42
+ while (current?.next) {
41
43
  if (hash_table_utils_1.HashTableUtils.keysEqual(current.next.key, key)) {
42
44
  current.next.value = value;
43
45
  return;
@@ -79,6 +81,15 @@ class HashTable {
79
81
  }
80
82
  return false;
81
83
  }
84
+ forEach(callback) {
85
+ for (const node of this.table) {
86
+ let current = node;
87
+ while (current) {
88
+ callback(current.key, current.value);
89
+ current = current.next;
90
+ }
91
+ }
92
+ }
82
93
  size() {
83
94
  return this.count;
84
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hash-table.js","sourceRoot":"","sources":["../../lib/hash-table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hash-table.js","sourceRoot":"","sources":["../../lib/hash-table.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { Comparator } from '../types';
2
+ import { BaseCollection } from './base-collection';
3
+ export interface Heap<T> {
4
+ push(element: T): void;
5
+ pop(): T | undefined;
6
+ top(): T | undefined;
7
+ }
8
+ export declare class Heap<T> extends BaseCollection<T> implements Heap<T> {
9
+ private items;
10
+ private comparator;
11
+ constructor(comparator?: Comparator<T>);
12
+ /**
13
+ * Checks if the heap is empty. Returns true if empty, false otherwise.
14
+ */
15
+ isEmpty(): boolean;
16
+ /**
17
+ * Returns the number of elements in the heap.
18
+ */
19
+ size(): number;
20
+ /**
21
+ * Removes all elements from the heap.
22
+ */
23
+ clear(): void;
24
+ /**
25
+ * Moves an element up the heap to its correct position.
26
+ */
27
+ private heapifyUp;
28
+ /**
29
+ * Moves an element down the heap to its correct position.
30
+ */
31
+ private heapifyDown;
32
+ }
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Heap = void 0;
4
+ const base_collection_1 = require("./base-collection");
5
+ class Heap extends base_collection_1.BaseCollection {
6
+ items;
7
+ comparator;
8
+ constructor(comparator = (a, b) => a < b) {
9
+ super();
10
+ this.items = [];
11
+ this.comparator = comparator;
12
+ }
13
+ /**
14
+ * Adds an element to the heap.
15
+ */
16
+ push(element) {
17
+ this.items.push(element);
18
+ this.heapifyUp(this.items.length - 1);
19
+ }
20
+ /**
21
+ * Removes and returns the root element from the heap, or undefined if heap is empty.
22
+ */
23
+ pop() {
24
+ if (this.isEmpty()) {
25
+ return undefined;
26
+ }
27
+ const root = this.items[0];
28
+ const lastElement = this.items.pop();
29
+ if (!this.isEmpty()) {
30
+ this.items[0] = lastElement;
31
+ this.heapifyDown(0);
32
+ }
33
+ return root;
34
+ }
35
+ /**
36
+ * Returns the root element without removing it, or undefined if heap is empty.
37
+ */
38
+ top() {
39
+ return this.items[0];
40
+ }
41
+ /**
42
+ * Checks if the heap is empty. Returns true if empty, false otherwise.
43
+ */
44
+ isEmpty() {
45
+ return this.items.length === 0;
46
+ }
47
+ /**
48
+ * Returns the number of elements in the heap.
49
+ */
50
+ size() {
51
+ return this.items.length;
52
+ }
53
+ /**
54
+ * Removes all elements from the heap.
55
+ */
56
+ clear() {
57
+ this.items = [];
58
+ }
59
+ /**
60
+ * Moves an element up the heap to its correct position.
61
+ */
62
+ heapifyUp(index) {
63
+ while (index > 0) {
64
+ const parentIndex = Math.floor((index - 1) / 2);
65
+ if (this.comparator(this.items[index], this.items[parentIndex])) {
66
+ [this.items[index], this.items[parentIndex]] =
67
+ [this.items[parentIndex], this.items[index]];
68
+ index = parentIndex;
69
+ }
70
+ else {
71
+ break;
72
+ }
73
+ }
74
+ }
75
+ /**
76
+ * Moves an element down the heap to its correct position.
77
+ */
78
+ heapifyDown(index) {
79
+ while (true) {
80
+ let smallestIndex = index;
81
+ const leftChild = 2 * index + 1;
82
+ const rightChild = 2 * index + 2;
83
+ if (leftChild < this.items.length &&
84
+ this.comparator(this.items[leftChild], this.items[smallestIndex])) {
85
+ smallestIndex = leftChild;
86
+ }
87
+ if (rightChild < this.items.length &&
88
+ this.comparator(this.items[rightChild], this.items[smallestIndex])) {
89
+ smallestIndex = rightChild;
90
+ }
91
+ if (smallestIndex === index) {
92
+ break;
93
+ }
94
+ [this.items[index], this.items[smallestIndex]] =
95
+ [this.items[smallestIndex], this.items[index]];
96
+ index = smallestIndex;
97
+ }
98
+ }
99
+ }
100
+ exports.Heap = Heap;
101
+ //# sourceMappingURL=heap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heap.js","sourceRoot":"","sources":["../../lib/heap.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { BaseCollection } from './base-collection';
1
2
  export interface LinkedList<T> {
2
3
  pushBack(element: T): void;
3
4
  pushFront(element: T): void;
@@ -12,13 +13,22 @@ export interface LinkedList<T> {
12
13
  removeAt(position: number): T | undefined;
13
14
  forEach(callback: (element: T) => void): void;
14
15
  get(position: number): T | undefined;
15
- isEmpty(): boolean;
16
- size(): number;
17
- clear(): void;
18
16
  }
19
- export declare class LinkedList<T> implements LinkedList<T> {
17
+ export declare class LinkedList<T> extends BaseCollection<T> implements LinkedList<T> {
20
18
  private head;
21
19
  private tail;
22
20
  private length;
23
21
  constructor();
22
+ /**
23
+ * Returns true if the list is empty, false otherwise
24
+ */
25
+ isEmpty(): boolean;
26
+ /**
27
+ * Returns the number of elements in the list
28
+ */
29
+ size(): number;
30
+ /**
31
+ * Removes all elements from the list
32
+ */
33
+ clear(): void;
24
34
  }
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LinkedList = void 0;
4
+ const base_collection_1 = require("./base-collection");
4
5
  class Node {
5
6
  value;
6
7
  next;
@@ -9,11 +10,12 @@ class Node {
9
10
  this.next = null;
10
11
  }
11
12
  }
12
- class LinkedList {
13
+ class LinkedList extends base_collection_1.BaseCollection {
13
14
  head;
14
15
  tail;
15
16
  length;
16
17
  constructor() {
18
+ super();
17
19
  this.head = null;
18
20
  this.tail = null;
19
21
  this.length = 0;
@@ -75,7 +77,7 @@ class LinkedList {
75
77
  return value;
76
78
  }
77
79
  let current = this.head;
78
- while (current.next !== this.tail) {
80
+ while (current?.next !== this.tail) {
79
81
  current = current.next;
80
82
  }
81
83
  const value = this.tail.value;
@@ -140,7 +142,7 @@ class LinkedList {
140
142
  return true;
141
143
  }
142
144
  let current = this.head;
143
- while (current.next !== null) {
145
+ while (current?.next !== null) {
144
146
  if (condition(current.next.value)) {
145
147
  const newNode = new Node(element);
146
148
  newNode.next = current.next;
@@ -1 +1 @@
1
- {"version":3,"file":"linked-list.js","sourceRoot":"","sources":["../../lib/linked-list.ts"],"names":[],"mappings":"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"}
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,15 +1,16 @@
1
1
  import { Comparator } from '../types';
2
+ import { BaseCollection } from './base-collection';
2
3
  export interface Map<K, V> {
3
4
  insert(key: K, value: V): void;
4
5
  find(key: K): V | undefined;
5
6
  delete(key: K): void;
6
7
  remove(key: K): void;
7
8
  forEach(callback: (key: K, value: V) => void): void;
8
- clear(): void;
9
- isEmpty(): boolean;
10
- size(): number;
11
9
  }
12
- export declare class Map<K, V> implements Map<K, V> {
10
+ export declare class Map<K, V> extends BaseCollection<V> implements Map<K, V> {
13
11
  private rbTree;
14
12
  constructor(comparator?: Comparator<K>);
13
+ clear(): void;
14
+ size(): number;
15
+ isEmpty(): boolean;
15
16
  }
package/dist/lib/map.js CHANGED
@@ -2,9 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Map = void 0;
4
4
  const red_black_tree_1 = require("./red-black-tree");
5
- class Map {
5
+ const base_collection_1 = require("./base-collection");
6
+ class Map extends base_collection_1.BaseCollection {
6
7
  rbTree;
7
8
  constructor(comparator = (a, b) => a < b) {
9
+ super();
8
10
  this.rbTree = new red_black_tree_1.RedBlackTree(comparator);
9
11
  }
10
12
  insert(key, value) {
@@ -1 +1 @@
1
- {"version":3,"file":"map.js","sourceRoot":"","sources":["../../lib/map.ts"],"names":[],"mappings":";;;AACA,qDAAgD;AAehD,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,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;IAED,OAAO,CAAC,QAAoC;QAC1C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;CACF;AAtCD,kBAsCC"}
1
+ {"version":3,"file":"map.js","sourceRoot":"","sources":["../../lib/map.ts"],"names":[],"mappings":";;;AACA,qDAAgD;AAChD,uDAAmD;AAYnD,MAAa,GAAU,SAAQ,gCAAiB;IACtC,MAAM,CAAqB;IAEnC,YAAY,aAA4B,CAAC,CAAI,EAAE,CAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;QAC3D,KAAK,EAAE,CAAC;QACR,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,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;IAED,OAAO,CAAC,QAAoC;QAC1C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;CACF;AAvCD,kBAuCC"}
@@ -1,13 +1,11 @@
1
+ import { BaseCollection } from './base-collection';
1
2
  export interface Matrix<T> {
2
3
  get(row: number, col: number): T | undefined;
3
4
  set(row: number, col: number, value: T): void;
4
5
  rows(): number;
5
6
  columns(): number;
6
7
  fill(value: T): void;
7
- clear(): void;
8
8
  resize(rows: number, cols: number): void;
9
- isEmpty(): boolean;
10
- size(): number;
11
9
  isSquare(): boolean;
12
10
  isSymmetric(): boolean;
13
11
  getRow(row: number): T[];
@@ -32,10 +30,22 @@ export interface Matrix<T> {
32
30
  setDiagonal(values: T[]): void;
33
31
  trace(): T;
34
32
  }
35
- export declare class Matrix<T> implements Matrix<T> {
33
+ export declare class Matrix<T> extends BaseCollection<T> implements Matrix<T> {
36
34
  private data;
37
35
  private numRows;
38
36
  private numCols;
39
37
  constructor(rows: number, cols: number);
38
+ /**
39
+ * Clears the matrix by setting all elements to undefined.
40
+ */
41
+ clear(): void;
42
+ /**
43
+ * Checks if the matrix is empty (has zero dimensions).
44
+ */
45
+ isEmpty(): boolean;
46
+ /**
47
+ * Returns the total number of elements in the matrix.
48
+ */
49
+ size(): number;
40
50
  private isValidPosition;
41
51
  }
@@ -1,11 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Matrix = void 0;
4
- class Matrix {
4
+ const base_collection_1 = require("./base-collection");
5
+ class Matrix extends base_collection_1.BaseCollection {
5
6
  data;
6
7
  numRows;
7
8
  numCols;
8
9
  constructor(rows, cols) {
10
+ super();
9
11
  this.numRows = rows;
10
12
  this.numCols = cols;
11
13
  this.data = Array(rows).fill(null).map(() => Array(cols).fill(undefined));
@@ -1 +1 @@
1
- {"version":3,"file":"matrix.js","sourceRoot":"","sources":["../../lib/matrix.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"matrix.js","sourceRoot":"","sources":["../../lib/matrix.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,23 @@
1
+ import { BaseCollection } from './base-collection';
2
+ import { Comparator } from '../types';
1
3
  export interface PriorityQueue<T> {
2
4
  push(element: T, priority: number): void;
3
5
  pop(): T | undefined;
4
6
  front(): T | undefined;
7
+ }
8
+ export declare class PriorityQueue<T> extends BaseCollection<T> implements PriorityQueue<T> {
9
+ private heap;
10
+ constructor(comparator?: Comparator<T>);
11
+ /**
12
+ * Checks if the queue is empty. Returns true if empty, false otherwise.
13
+ */
5
14
  isEmpty(): boolean;
15
+ /**
16
+ * Returns the number of elements in the queue.
17
+ */
6
18
  size(): number;
19
+ /**
20
+ * Removes all elements from the queue.
21
+ */
7
22
  clear(): void;
8
23
  }
9
- export declare class PriorityQueue<T> implements PriorityQueue<T> {
10
- private list;
11
- constructor();
12
- }
@@ -1,56 +1,50 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PriorityQueue = void 0;
4
- const linked_list_1 = require("./linked-list");
5
- class PriorityQueue {
6
- list;
7
- constructor() {
8
- this.list = new linked_list_1.LinkedList();
4
+ const heap_1 = require("./heap");
5
+ const base_collection_1 = require("./base-collection");
6
+ class PriorityQueue extends base_collection_1.BaseCollection {
7
+ heap;
8
+ constructor(comparator = (a, b) => a > b) {
9
+ super();
10
+ this.heap = new heap_1.Heap(comparator);
9
11
  }
10
12
  /**
11
13
  * Adds an element with a priority to the queue.
12
14
  * Lower priority numbers have higher precedence.
13
15
  */
14
- push(element, priority) {
15
- const item = { element, priority };
16
- if (this.list.isEmpty()) {
17
- this.list.pushBack(item);
18
- return;
19
- }
20
- if (!this.list.insertBefore(item, (current) => current.priority < priority)) {
21
- this.list.pushBack(item);
22
- }
16
+ push(element) {
17
+ this.heap.push(element);
23
18
  }
24
19
  /**
25
20
  * Removes and returns the highest priority element from the queue, or undefined if queue is empty.
26
21
  */
27
22
  pop() {
28
- const item = this.list.popFront();
29
- return item?.element;
23
+ return this.heap.pop();
30
24
  }
31
25
  /**
32
26
  * Returns the highest priority element without removing it, or undefined if queue is empty.
33
27
  */
34
28
  front() {
35
- return this.list.front()?.element;
29
+ return this.heap.top();
36
30
  }
37
31
  /**
38
32
  * Checks if the queue is empty. Returns true if empty, false otherwise.
39
33
  */
40
34
  isEmpty() {
41
- return this.list.isEmpty();
35
+ return this.heap.isEmpty();
42
36
  }
43
37
  /**
44
38
  * Returns the number of elements in the queue.
45
39
  */
46
40
  size() {
47
- return this.list.size();
41
+ return this.heap.size();
48
42
  }
49
43
  /**
50
44
  * Removes all elements from the queue.
51
45
  */
52
46
  clear() {
53
- this.list.clear();
47
+ this.heap.clear();
54
48
  }
55
49
  }
56
50
  exports.PriorityQueue = PriorityQueue;
@@ -1 +1 @@
1
- {"version":3,"file":"priority-queue.js","sourceRoot":"","sources":["../../lib/priority-queue.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAa3C,MAAa,aAAa;IAChB,IAAI,CAA+C;IAE3D;QACE,IAAI,CAAC,IAAI,GAAG,IAAI,wBAAU,EAAoC,CAAC;IACjE,CAAC;IAED;;;OAGG;IACH,IAAI,CAAC,OAAU,EAAE,QAAgB;QAC/B,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC;YAC5E,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,GAAG;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,OAAO,IAAI,EAAE,OAAO,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;CACF;AAzDD,sCAyDC"}
1
+ {"version":3,"file":"priority-queue.js","sourceRoot":"","sources":["../../lib/priority-queue.ts"],"names":[],"mappings":";;;AAAA,iCAA8B;AAC9B,uDAAmD;AAWnD,MAAa,aAAiB,SAAQ,gCAAiB;IAC7C,IAAI,CAAU;IAEtB,YAAY,aAA4B,CAAC,CAAI,EAAE,CAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;QAC3D,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,WAAI,CAAI,UAAU,CAAC,CAAC;IACtC,CAAC;IAED;;;OAGG;IACH,IAAI,CAAC,OAAU;QACb,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,GAAG;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;CACF;AAlDD,sCAkDC"}
@@ -1,12 +1,22 @@
1
+ import { BaseCollection } from './base-collection';
1
2
  export interface Queue<T> {
2
3
  push(element: T): void;
3
4
  pop(): T | undefined;
4
5
  front(): T | undefined;
5
- isEmpty(): boolean;
6
- size(): number;
7
- clear(): void;
8
6
  }
9
- export declare class Queue<T> implements Queue<T> {
7
+ export declare class Queue<T> extends BaseCollection<T> implements Queue<T> {
10
8
  private items;
11
9
  constructor();
10
+ /**
11
+ * Checks if the queue is empty. Returns true if the queue is empty, false otherwise.
12
+ */
13
+ isEmpty(): boolean;
14
+ /**
15
+ * Returns the number of elements in the queue.
16
+ */
17
+ size(): number;
18
+ /**
19
+ * Removes all elements from the queue.
20
+ */
21
+ clear(): void;
12
22
  }
package/dist/lib/queue.js CHANGED
@@ -2,9 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Queue = void 0;
4
4
  const linked_list_1 = require("./linked-list");
5
- class Queue {
5
+ const base_collection_1 = require("./base-collection");
6
+ class Queue extends base_collection_1.BaseCollection {
6
7
  items;
7
8
  constructor() {
9
+ super();
8
10
  this.items = new linked_list_1.LinkedList();
9
11
  }
10
12
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../lib/queue.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAa3C,MAAa,KAAK;IACR,KAAK,CAAgB;IAE7B;QACE,IAAI,CAAC,KAAK,GAAG,IAAI,wBAAU,EAAK,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,OAAU;QACb,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,GAAG;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF;AAhDD,sBAgDC"}
1
+ {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../lib/queue.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAC3C,uDAAmD;AAUnD,MAAa,KAAS,SAAQ,gCAAiB;IACrC,KAAK,CAAgB;IAE7B;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,IAAI,wBAAU,EAAK,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,OAAU;QACb,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,GAAG;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF;AAjDD,sBAiDC"}
@@ -1,4 +1,5 @@
1
1
  import { Comparator } from '../types';
2
+ import { BaseCollection } from './base-collection';
2
3
  export interface RedBlackTree<K, V> {
3
4
  insert(key: K, value: V): void;
4
5
  remove(key: K): void;
@@ -6,11 +7,8 @@ export interface RedBlackTree<K, V> {
6
7
  min(): V | undefined;
7
8
  max(): V | undefined;
8
9
  forEach(callback: (key: K, value: V) => void): void;
9
- isEmpty(): boolean;
10
- size(): number;
11
- clear(): void;
12
10
  }
13
- export declare class RedBlackTree<K, V> implements RedBlackTree<K, V> {
11
+ export declare class RedBlackTree<K, V> extends BaseCollection<V> implements RedBlackTree<K, V> {
14
12
  private root;
15
13
  private nodeCount;
16
14
  private comparator;
@@ -24,6 +22,9 @@ export declare class RedBlackTree<K, V> implements RedBlackTree<K, V> {
24
22
  private deleteNode;
25
23
  private transplant;
26
24
  private fixDelete;
25
+ isEmpty(): boolean;
26
+ size(): number;
27
+ clear(): void;
27
28
  private isEqual;
28
29
  private inorderTraversal;
29
30
  }
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RedBlackTree = void 0;
4
+ const base_collection_1 = require("./base-collection");
4
5
  var Color;
5
6
  (function (Color) {
6
7
  Color[Color["RED"] = 0] = "RED";
@@ -22,11 +23,12 @@ class RBNode {
22
23
  this.parent = null;
23
24
  }
24
25
  }
25
- class RedBlackTree {
26
+ class RedBlackTree extends base_collection_1.BaseCollection {
26
27
  root;
27
28
  nodeCount;
28
29
  comparator;
29
30
  constructor(comparator = (a, b) => a < b) {
31
+ super();
30
32
  this.root = null;
31
33
  this.nodeCount = 0;
32
34
  this.comparator = comparator;
@@ -157,7 +159,7 @@ class RedBlackTree {
157
159
  }
158
160
  findMinNode(node) {
159
161
  let current = node;
160
- while (current.left !== null) {
162
+ while (current?.left !== null) {
161
163
  current = current.left;
162
164
  }
163
165
  return current;
@@ -169,7 +171,7 @@ class RedBlackTree {
169
171
  }
170
172
  findMaxNode(node) {
171
173
  let current = node;
172
- while (current.right !== null) {
174
+ while (current?.right !== null) {
173
175
  current = current.right;
174
176
  }
175
177
  return current;
@@ -1 +1 @@
1
- {"version":3,"file":"red-black-tree.js","sourceRoot":"","sources":["../../lib/red-black-tree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"red-black-tree.js","sourceRoot":"","sources":["../../lib/red-black-tree.ts"],"names":[],"mappings":"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"}
package/dist/lib/set.d.ts CHANGED
@@ -1,15 +1,25 @@
1
1
  import { Comparator } from '../types';
2
+ import { BaseCollection } from './base-collection';
2
3
  export interface Set<T> {
3
4
  insert(element: T): void;
4
5
  insertList(elements: T[]): void;
5
6
  remove(element: T): void;
6
7
  find(element: T): boolean;
7
8
  forEach(callback: (element: T) => void): void;
8
- isEmpty(): boolean;
9
- size(): number;
10
- clear(): void;
11
9
  }
12
- export declare class Set<T> implements Set<T> {
10
+ export declare class Set<T> extends BaseCollection<T> implements Set<T> {
13
11
  private bst;
14
12
  constructor(comparator?: Comparator<T>);
13
+ /**
14
+ * Removes all elements from the set
15
+ */
16
+ clear(): void;
17
+ /**
18
+ * Returns true if the set contains no elements
19
+ */
20
+ isEmpty(): boolean;
21
+ /**
22
+ * Returns the number of elements in the set
23
+ */
24
+ size(): number;
15
25
  }
package/dist/lib/set.js CHANGED
@@ -2,9 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Set = void 0;
4
4
  const binary_search_tree_1 = require("./binary-search-tree");
5
- class Set {
5
+ const base_collection_1 = require("./base-collection");
6
+ class Set extends base_collection_1.BaseCollection {
6
7
  bst;
7
8
  constructor(comparator = (a, b) => a < b) {
9
+ super();
8
10
  this.bst = new binary_search_tree_1.BinarySearchTree(comparator);
9
11
  }
10
12
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"set.js","sourceRoot":"","sources":["../../lib/set.ts"],"names":[],"mappings":";;;AACA,6DAAwD;AAexD,MAAa,GAAG;IACN,GAAG,CAAsB;IAEjC,YAAY,aAA4B,CAAC,CAAI,EAAE,CAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;QAC3D,IAAI,CAAC,GAAG,GAAG,IAAI,qCAAgB,CAAI,UAAU,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAQ;QACb,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,MAAW;QACpB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,KAAQ;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAQ;QACb,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,QAA8B;QACpC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,GAAG,GAAG,IAAI,qCAAgB,EAAK,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;CACF;AAlED,kBAkEC"}
1
+ {"version":3,"file":"set.js","sourceRoot":"","sources":["../../lib/set.ts"],"names":[],"mappings":";;;AACA,6DAAwD;AACxD,uDAAmD;AAYnD,MAAa,GAAO,SAAQ,gCAAiB;IACnC,GAAG,CAAsB;IAEjC,YAAY,aAA4B,CAAC,CAAI,EAAE,CAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;QAC3D,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,GAAG,GAAG,IAAI,qCAAgB,CAAI,UAAU,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAQ;QACb,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,MAAW;QACpB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,KAAQ;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAQ;QACb,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,QAA8B;QACpC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,GAAG,GAAG,IAAI,qCAAgB,EAAK,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;CACF;AAnED,kBAmEC"}
@@ -1,12 +1,22 @@
1
+ import { BaseCollection } from "./base-collection";
1
2
  export interface Stack<T> {
2
3
  push(element: T): void;
3
4
  pop(): T | undefined;
4
5
  top(): T | undefined;
6
+ }
7
+ export declare class Stack<T> extends BaseCollection<T> implements Stack<T> {
8
+ private llData;
9
+ constructor();
10
+ /**
11
+ * Checks if the stack is empty. Returns true if the stack is empty, false otherwise.
12
+ */
5
13
  isEmpty(): boolean;
14
+ /**
15
+ * Returns the number of elements in the stack. The size of the stack
16
+ */
6
17
  size(): number;
18
+ /**
19
+ * Removes all elements from the stack.
20
+ */
7
21
  clear(): void;
8
22
  }
9
- export declare class Stack<T> implements Stack<T> {
10
- private items;
11
- constructor();
12
- }
package/dist/lib/stack.js CHANGED
@@ -1,46 +1,49 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Stack = void 0;
4
- class Stack {
5
- items;
4
+ const base_collection_1 = require("./base-collection");
5
+ const linked_list_1 = require("./linked-list");
6
+ class Stack extends base_collection_1.BaseCollection {
7
+ llData;
6
8
  constructor() {
7
- this.items = [];
9
+ super();
10
+ this.llData = new linked_list_1.LinkedList();
8
11
  }
9
12
  /**
10
13
  * Adds an element to the top of the stack.
11
14
  */
12
15
  push(element) {
13
- this.items.push(element);
16
+ this.llData.pushFront(element);
14
17
  }
15
18
  /**
16
19
  * Removes and returns the top element from the stack, or undefined if stack is empty.
17
20
  */
18
21
  pop() {
19
- return this.items.pop();
22
+ return this.llData.popFront();
20
23
  }
21
24
  /**
22
25
  * Returns the top element of the stack without removing it, or undefined if stack is empty.
23
26
  */
24
27
  top() {
25
- return this.items[this.items.length - 1];
28
+ return this.llData.front();
26
29
  }
27
30
  /**
28
31
  * Checks if the stack is empty. Returns true if the stack is empty, false otherwise.
29
32
  */
30
33
  isEmpty() {
31
- return this.items.length === 0;
34
+ return this.llData.isEmpty();
32
35
  }
33
36
  /**
34
37
  * Returns the number of elements in the stack. The size of the stack
35
38
  */
36
39
  size() {
37
- return this.items.length;
40
+ return this.llData.size();
38
41
  }
39
42
  /**
40
43
  * Removes all elements from the stack.
41
44
  */
42
45
  clear() {
43
- this.items = [];
46
+ this.llData.clear();
44
47
  }
45
48
  }
46
49
  exports.Stack = Stack;
@@ -1 +1 @@
1
- {"version":3,"file":"stack.js","sourceRoot":"","sources":["../../lib/stack.ts"],"names":[],"mappings":";;;AAUA,MAAa,KAAK;IACR,KAAK,CAAM;IAEnB;QACE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,OAAU;QACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,GAAG;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,GAAG;QACD,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;AAhDD,sBAgDC"}
1
+ {"version":3,"file":"stack.js","sourceRoot":"","sources":["../../lib/stack.ts"],"names":[],"mappings":";;;AAAA,uDAAmD;AACnD,+CAA2C;AAU3C,MAAa,KAAS,SAAQ,gCAAiB;IACrC,MAAM,CAAgB;IAE9B;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,IAAI,wBAAU,EAAK,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,OAAU;QACb,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,GAAG;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,GAAG;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF;AAjDD,sBAiDC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typescript-ds-lib",
3
- "version": "0.3.1",
3
+ "version": "0.3.5",
4
4
  "description": "A collection of TypeScript data structure implementations",
5
5
  "author": "Artiom Baloian <artiom.baloian@gmail.com>",
6
6
  "license": "MIT",