singly-linked-list-typed 2.5.1 → 2.5.3

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 (75) hide show
  1. package/dist/cjs/index.cjs +163 -51
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/cjs-legacy/index.cjs +162 -50
  4. package/dist/cjs-legacy/index.cjs.map +1 -1
  5. package/dist/esm/index.mjs +163 -52
  6. package/dist/esm/index.mjs.map +1 -1
  7. package/dist/esm-legacy/index.mjs +162 -51
  8. package/dist/esm-legacy/index.mjs.map +1 -1
  9. package/dist/types/common/error.d.ts +9 -0
  10. package/dist/types/common/index.d.ts +1 -1
  11. package/dist/types/data-structures/binary-tree/avl-tree.d.ts +86 -2
  12. package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +98 -0
  13. package/dist/types/data-structures/binary-tree/binary-tree.d.ts +189 -13
  14. package/dist/types/data-structures/binary-tree/bst.d.ts +270 -3
  15. package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +136 -8
  16. package/dist/types/data-structures/binary-tree/segment-tree.d.ts +42 -0
  17. package/dist/types/data-structures/binary-tree/tree-map.d.ts +1089 -161
  18. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +1243 -350
  19. package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +980 -255
  20. package/dist/types/data-structures/binary-tree/tree-set.d.ts +1174 -284
  21. package/dist/types/data-structures/graph/directed-graph.d.ts +70 -0
  22. package/dist/types/data-structures/graph/undirected-graph.d.ts +63 -0
  23. package/dist/types/data-structures/hash/hash-map.d.ts +84 -6
  24. package/dist/types/data-structures/heap/heap.d.ts +140 -12
  25. package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +126 -0
  26. package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +106 -1
  27. package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +126 -0
  28. package/dist/types/data-structures/matrix/matrix.d.ts +56 -0
  29. package/dist/types/data-structures/queue/deque.d.ts +127 -0
  30. package/dist/types/data-structures/queue/queue.d.ts +97 -0
  31. package/dist/types/data-structures/stack/stack.d.ts +72 -2
  32. package/dist/types/data-structures/trie/trie.d.ts +84 -0
  33. package/dist/types/interfaces/binary-tree.d.ts +2 -3
  34. package/dist/types/types/data-structures/binary-tree/bst.d.ts +1 -0
  35. package/dist/types/types/data-structures/binary-tree/tree-map.d.ts +5 -0
  36. package/dist/types/types/data-structures/binary-tree/tree-multi-set.d.ts +4 -0
  37. package/dist/types/types/data-structures/binary-tree/tree-set.d.ts +4 -0
  38. package/dist/umd/singly-linked-list-typed.js +160 -49
  39. package/dist/umd/singly-linked-list-typed.js.map +1 -1
  40. package/dist/umd/singly-linked-list-typed.min.js +1 -1
  41. package/dist/umd/singly-linked-list-typed.min.js.map +1 -1
  42. package/package.json +2 -2
  43. package/src/common/error.ts +19 -1
  44. package/src/common/index.ts +1 -1
  45. package/src/data-structures/base/iterable-element-base.ts +3 -2
  46. package/src/data-structures/binary-tree/avl-tree.ts +99 -5
  47. package/src/data-structures/binary-tree/binary-indexed-tree.ts +102 -4
  48. package/src/data-structures/binary-tree/binary-tree.ts +239 -78
  49. package/src/data-structures/binary-tree/bst.ts +542 -13
  50. package/src/data-structures/binary-tree/red-black-tree.ts +155 -15
  51. package/src/data-structures/binary-tree/segment-tree.ts +42 -0
  52. package/src/data-structures/binary-tree/tree-map.ts +1223 -261
  53. package/src/data-structures/binary-tree/tree-multi-map.ts +939 -30
  54. package/src/data-structures/binary-tree/tree-multi-set.ts +746 -10
  55. package/src/data-structures/binary-tree/tree-set.ts +1018 -99
  56. package/src/data-structures/graph/abstract-graph.ts +2 -2
  57. package/src/data-structures/graph/directed-graph.ts +71 -1
  58. package/src/data-structures/graph/undirected-graph.ts +64 -1
  59. package/src/data-structures/hash/hash-map.ts +102 -16
  60. package/src/data-structures/heap/heap.ts +153 -23
  61. package/src/data-structures/heap/max-heap.ts +2 -2
  62. package/src/data-structures/linked-list/doubly-linked-list.ts +139 -0
  63. package/src/data-structures/linked-list/singly-linked-list.ts +106 -1
  64. package/src/data-structures/linked-list/skip-linked-list.ts +131 -5
  65. package/src/data-structures/matrix/matrix.ts +65 -9
  66. package/src/data-structures/priority-queue/max-priority-queue.ts +2 -2
  67. package/src/data-structures/queue/deque.ts +130 -0
  68. package/src/data-structures/queue/queue.ts +109 -0
  69. package/src/data-structures/stack/stack.ts +75 -5
  70. package/src/data-structures/trie/trie.ts +86 -2
  71. package/src/interfaces/binary-tree.ts +1 -9
  72. package/src/types/data-structures/binary-tree/bst.ts +1 -0
  73. package/src/types/data-structures/binary-tree/tree-map.ts +6 -0
  74. package/src/types/data-structures/binary-tree/tree-multi-set.ts +5 -0
  75. package/src/types/data-structures/binary-tree/tree-set.ts +5 -0
@@ -3,6 +3,60 @@ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { en
3
3
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
4
4
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
5
 
6
+ // src/common/error.ts
7
+ function raise(ErrorClass, message) {
8
+ throw new ErrorClass(message);
9
+ }
10
+ __name(raise, "raise");
11
+ var ERR = {
12
+ // Range / index
13
+ indexOutOfRange: /* @__PURE__ */ __name((index, min, max, ctx) => `${ctx ? ctx + ": " : ""}Index ${index} is out of range [${min}, ${max}].`, "indexOutOfRange"),
14
+ invalidIndex: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Index must be an integer.`, "invalidIndex"),
15
+ // Type / argument
16
+ invalidArgument: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidArgument"),
17
+ comparatorRequired: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Comparator is required for non-number/non-string/non-Date keys.`, "comparatorRequired"),
18
+ invalidKey: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidKey"),
19
+ notAFunction: /* @__PURE__ */ __name((name, ctx) => `${ctx ? ctx + ": " : ""}${name} must be a function.`, "notAFunction"),
20
+ invalidEntry: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Each entry must be a [key, value] tuple.`, "invalidEntry"),
21
+ invalidNaN: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}NaN is not a valid key.`, "invalidNaN"),
22
+ invalidDate: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Invalid Date key.`, "invalidDate"),
23
+ reduceEmpty: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Reduce of empty structure with no initial value.`, "reduceEmpty"),
24
+ callbackReturnType: /* @__PURE__ */ __name((expected, got, ctx) => `${ctx ? ctx + ": " : ""}Callback must return ${expected}; got ${got}.`, "callbackReturnType"),
25
+ // State / operation
26
+ invalidOperation: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidOperation"),
27
+ // Matrix
28
+ matrixDimensionMismatch: /* @__PURE__ */ __name((op) => `Matrix: Dimensions must be compatible for ${op}.`, "matrixDimensionMismatch"),
29
+ matrixSingular: /* @__PURE__ */ __name(() => "Matrix: Singular matrix, inverse does not exist.", "matrixSingular"),
30
+ matrixNotSquare: /* @__PURE__ */ __name(() => "Matrix: Must be square for inversion.", "matrixNotSquare"),
31
+ matrixNotRectangular: /* @__PURE__ */ __name(() => "Matrix: Must be rectangular for transposition.", "matrixNotRectangular"),
32
+ matrixRowMismatch: /* @__PURE__ */ __name((expected, got) => `Matrix: Expected row length ${expected}, but got ${got}.`, "matrixRowMismatch"),
33
+ // Order statistic
34
+ orderStatisticNotEnabled: /* @__PURE__ */ __name((method, ctx) => `${ctx ? ctx + ": " : ""}${method}() requires enableOrderStatistic: true.`, "orderStatisticNotEnabled")
35
+ };
36
+
37
+ // src/common/index.ts
38
+ var DFSOperation = /* @__PURE__ */ ((DFSOperation2) => {
39
+ DFSOperation2[DFSOperation2["VISIT"] = 0] = "VISIT";
40
+ DFSOperation2[DFSOperation2["PROCESS"] = 1] = "PROCESS";
41
+ return DFSOperation2;
42
+ })(DFSOperation || {});
43
+ var _Range = class _Range {
44
+ constructor(low, high, includeLow = true, includeHigh = true) {
45
+ this.low = low;
46
+ this.high = high;
47
+ this.includeLow = includeLow;
48
+ this.includeHigh = includeHigh;
49
+ }
50
+ // Determine whether a key is within the range
51
+ isInRange(key, comparator) {
52
+ const lowCheck = this.includeLow ? comparator(key, this.low) >= 0 : comparator(key, this.low) > 0;
53
+ const highCheck = this.includeHigh ? comparator(key, this.high) <= 0 : comparator(key, this.high) < 0;
54
+ return lowCheck && highCheck;
55
+ }
56
+ };
57
+ __name(_Range, "Range");
58
+ var Range = _Range;
59
+
6
60
  // src/data-structures/base/iterable-element-base.ts
7
61
  var _IterableElementBase = class _IterableElementBase {
8
62
  /**
@@ -25,7 +79,7 @@ var _IterableElementBase = class _IterableElementBase {
25
79
  if (options) {
26
80
  const { toElementFn } = options;
27
81
  if (typeof toElementFn === "function") this._toElementFn = toElementFn;
28
- else if (toElementFn) throw new TypeError("toElementFn must be a function type");
82
+ else if (toElementFn) raise(TypeError, "toElementFn must be a function type");
29
83
  }
30
84
  }
31
85
  /**
@@ -181,7 +235,7 @@ var _IterableElementBase = class _IterableElementBase {
181
235
  acc = initialValue;
182
236
  } else {
183
237
  const first = iter.next();
184
- if (first.done) throw new TypeError("Reduce of empty structure with no initial value");
238
+ if (first.done) raise(TypeError, "Reduce of empty structure with no initial value");
185
239
  acc = first.value;
186
240
  index = 1;
187
241
  }
@@ -747,6 +801,13 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
747
801
 
748
802
 
749
803
 
804
+
805
+
806
+
807
+
808
+
809
+
810
+
750
811
 
751
812
 
752
813
 
@@ -811,6 +872,13 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
811
872
 
812
873
 
813
874
 
875
+
876
+
877
+
878
+
879
+
880
+
881
+
814
882
 
815
883
 
816
884
 
@@ -881,6 +949,13 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
881
949
 
882
950
 
883
951
 
952
+
953
+
954
+
955
+
956
+
957
+
958
+
884
959
 
885
960
 
886
961
 
@@ -932,6 +1007,13 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
932
1007
 
933
1008
 
934
1009
 
1010
+
1011
+
1012
+
1013
+
1014
+
1015
+
1016
+
935
1017
 
936
1018
 
937
1019
 
@@ -1044,6 +1126,13 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1044
1126
 
1045
1127
 
1046
1128
 
1129
+
1130
+
1131
+
1132
+
1133
+
1134
+
1135
+
1047
1136
 
1048
1137
 
1049
1138
 
@@ -1100,6 +1189,13 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1100
1189
 
1101
1190
 
1102
1191
 
1192
+
1193
+
1194
+
1195
+
1196
+
1197
+
1198
+
1103
1199
 
1104
1200
 
1105
1201
 
@@ -1145,6 +1241,13 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1145
1241
 
1146
1242
 
1147
1243
 
1244
+
1245
+
1246
+
1247
+
1248
+
1249
+
1250
+
1148
1251
 
1149
1252
 
1150
1253
 
@@ -1196,6 +1299,13 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1196
1299
 
1197
1300
 
1198
1301
 
1302
+
1303
+
1304
+
1305
+
1306
+
1307
+
1308
+
1199
1309
 
1200
1310
 
1201
1311
 
@@ -1252,6 +1362,13 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1252
1362
 
1253
1363
 
1254
1364
 
1365
+
1366
+
1367
+
1368
+
1369
+
1370
+
1371
+
1255
1372
 
1256
1373
 
1257
1374
 
@@ -1316,6 +1433,13 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1316
1433
 
1317
1434
 
1318
1435
 
1436
+
1437
+
1438
+
1439
+
1440
+
1441
+
1442
+
1319
1443
 
1320
1444
 
1321
1445
 
@@ -1357,6 +1481,13 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1357
1481
 
1358
1482
 
1359
1483
 
1484
+
1485
+
1486
+
1487
+
1488
+
1489
+
1490
+
1360
1491
 
1361
1492
 
1362
1493
 
@@ -1404,6 +1535,13 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1404
1535
 
1405
1536
 
1406
1537
 
1538
+
1539
+
1540
+
1541
+
1542
+
1543
+
1544
+
1407
1545
 
1408
1546
 
1409
1547
 
@@ -1617,6 +1755,13 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1617
1755
 
1618
1756
 
1619
1757
 
1758
+
1759
+
1760
+
1761
+
1762
+
1763
+
1764
+
1620
1765
 
1621
1766
 
1622
1767
 
@@ -1668,6 +1813,13 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1668
1813
 
1669
1814
 
1670
1815
 
1816
+
1817
+
1818
+
1819
+
1820
+
1821
+
1822
+
1671
1823
 
1672
1824
 
1673
1825
 
@@ -1747,6 +1899,13 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1747
1899
 
1748
1900
 
1749
1901
 
1902
+
1903
+
1904
+
1905
+
1906
+
1907
+
1908
+
1750
1909
 
1751
1910
 
1752
1911
 
@@ -1896,54 +2055,6 @@ function elementOrPredicate(input, equals) {
1896
2055
  return (node) => equals(node.value, value);
1897
2056
  }
1898
2057
  __name(elementOrPredicate, "elementOrPredicate");
1899
-
1900
- // src/common/error.ts
1901
- var ERR = {
1902
- // Range / index
1903
- indexOutOfRange: /* @__PURE__ */ __name((index, min, max, ctx) => `${ctx ? ctx + ": " : ""}Index ${index} is out of range [${min}, ${max}].`, "indexOutOfRange"),
1904
- invalidIndex: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Index must be an integer.`, "invalidIndex"),
1905
- // Type / argument
1906
- invalidArgument: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidArgument"),
1907
- comparatorRequired: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Comparator is required for non-number/non-string/non-Date keys.`, "comparatorRequired"),
1908
- invalidKey: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidKey"),
1909
- notAFunction: /* @__PURE__ */ __name((name, ctx) => `${ctx ? ctx + ": " : ""}${name} must be a function.`, "notAFunction"),
1910
- invalidEntry: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Each entry must be a [key, value] tuple.`, "invalidEntry"),
1911
- invalidNaN: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}NaN is not a valid key.`, "invalidNaN"),
1912
- invalidDate: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Invalid Date key.`, "invalidDate"),
1913
- reduceEmpty: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Reduce of empty structure with no initial value.`, "reduceEmpty"),
1914
- callbackReturnType: /* @__PURE__ */ __name((expected, got, ctx) => `${ctx ? ctx + ": " : ""}Callback must return ${expected}; got ${got}.`, "callbackReturnType"),
1915
- // State / operation
1916
- invalidOperation: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidOperation"),
1917
- // Matrix
1918
- matrixDimensionMismatch: /* @__PURE__ */ __name((op) => `Matrix: Dimensions must be compatible for ${op}.`, "matrixDimensionMismatch"),
1919
- matrixSingular: /* @__PURE__ */ __name(() => "Matrix: Singular matrix, inverse does not exist.", "matrixSingular"),
1920
- matrixNotSquare: /* @__PURE__ */ __name(() => "Matrix: Must be square for inversion.", "matrixNotSquare"),
1921
- matrixNotRectangular: /* @__PURE__ */ __name(() => "Matrix: Must be rectangular for transposition.", "matrixNotRectangular"),
1922
- matrixRowMismatch: /* @__PURE__ */ __name((expected, got) => `Matrix: Expected row length ${expected}, but got ${got}.`, "matrixRowMismatch")
1923
- };
1924
-
1925
- // src/common/index.ts
1926
- var DFSOperation = /* @__PURE__ */ ((DFSOperation2) => {
1927
- DFSOperation2[DFSOperation2["VISIT"] = 0] = "VISIT";
1928
- DFSOperation2[DFSOperation2["PROCESS"] = 1] = "PROCESS";
1929
- return DFSOperation2;
1930
- })(DFSOperation || {});
1931
- var _Range = class _Range {
1932
- constructor(low, high, includeLow = true, includeHigh = true) {
1933
- this.low = low;
1934
- this.high = high;
1935
- this.includeLow = includeLow;
1936
- this.includeHigh = includeHigh;
1937
- }
1938
- // Determine whether a key is within the range
1939
- isInRange(key, comparator) {
1940
- const lowCheck = this.includeLow ? comparator(key, this.low) >= 0 : comparator(key, this.low) > 0;
1941
- const highCheck = this.includeHigh ? comparator(key, this.high) <= 0 : comparator(key, this.high) < 0;
1942
- return lowCheck && highCheck;
1943
- }
1944
- };
1945
- __name(_Range, "Range");
1946
- var Range = _Range;
1947
2058
  /**
1948
2059
  * data-structure-typed
1949
2060
  *
@@ -1952,6 +2063,6 @@ var Range = _Range;
1952
2063
  * @license MIT License
1953
2064
  */
1954
2065
 
1955
- export { DFSOperation, ERR, Range, SinglyLinkedList, SinglyLinkedListNode };
2066
+ export { DFSOperation, ERR, Range, SinglyLinkedList, SinglyLinkedListNode, raise };
1956
2067
  //# sourceMappingURL=index.mjs.map
1957
2068
  //# sourceMappingURL=index.mjs.map