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
@@ -5,6 +5,60 @@ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { en
5
5
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
6
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
7
7
 
8
+ // src/common/error.ts
9
+ function raise(ErrorClass, message) {
10
+ throw new ErrorClass(message);
11
+ }
12
+ __name(raise, "raise");
13
+ var ERR = {
14
+ // Range / index
15
+ indexOutOfRange: /* @__PURE__ */ __name((index, min, max, ctx) => `${ctx ? ctx + ": " : ""}Index ${index} is out of range [${min}, ${max}].`, "indexOutOfRange"),
16
+ invalidIndex: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Index must be an integer.`, "invalidIndex"),
17
+ // Type / argument
18
+ invalidArgument: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidArgument"),
19
+ comparatorRequired: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Comparator is required for non-number/non-string/non-Date keys.`, "comparatorRequired"),
20
+ invalidKey: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidKey"),
21
+ notAFunction: /* @__PURE__ */ __name((name, ctx) => `${ctx ? ctx + ": " : ""}${name} must be a function.`, "notAFunction"),
22
+ invalidEntry: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Each entry must be a [key, value] tuple.`, "invalidEntry"),
23
+ invalidNaN: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}NaN is not a valid key.`, "invalidNaN"),
24
+ invalidDate: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Invalid Date key.`, "invalidDate"),
25
+ reduceEmpty: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Reduce of empty structure with no initial value.`, "reduceEmpty"),
26
+ callbackReturnType: /* @__PURE__ */ __name((expected, got, ctx) => `${ctx ? ctx + ": " : ""}Callback must return ${expected}; got ${got}.`, "callbackReturnType"),
27
+ // State / operation
28
+ invalidOperation: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidOperation"),
29
+ // Matrix
30
+ matrixDimensionMismatch: /* @__PURE__ */ __name((op) => `Matrix: Dimensions must be compatible for ${op}.`, "matrixDimensionMismatch"),
31
+ matrixSingular: /* @__PURE__ */ __name(() => "Matrix: Singular matrix, inverse does not exist.", "matrixSingular"),
32
+ matrixNotSquare: /* @__PURE__ */ __name(() => "Matrix: Must be square for inversion.", "matrixNotSquare"),
33
+ matrixNotRectangular: /* @__PURE__ */ __name(() => "Matrix: Must be rectangular for transposition.", "matrixNotRectangular"),
34
+ matrixRowMismatch: /* @__PURE__ */ __name((expected, got) => `Matrix: Expected row length ${expected}, but got ${got}.`, "matrixRowMismatch"),
35
+ // Order statistic
36
+ orderStatisticNotEnabled: /* @__PURE__ */ __name((method, ctx) => `${ctx ? ctx + ": " : ""}${method}() requires enableOrderStatistic: true.`, "orderStatisticNotEnabled")
37
+ };
38
+
39
+ // src/common/index.ts
40
+ var DFSOperation = /* @__PURE__ */ ((DFSOperation2) => {
41
+ DFSOperation2[DFSOperation2["VISIT"] = 0] = "VISIT";
42
+ DFSOperation2[DFSOperation2["PROCESS"] = 1] = "PROCESS";
43
+ return DFSOperation2;
44
+ })(DFSOperation || {});
45
+ var _Range = class _Range {
46
+ constructor(low, high, includeLow = true, includeHigh = true) {
47
+ this.low = low;
48
+ this.high = high;
49
+ this.includeLow = includeLow;
50
+ this.includeHigh = includeHigh;
51
+ }
52
+ // Determine whether a key is within the range
53
+ isInRange(key, comparator) {
54
+ const lowCheck = this.includeLow ? comparator(key, this.low) >= 0 : comparator(key, this.low) > 0;
55
+ const highCheck = this.includeHigh ? comparator(key, this.high) <= 0 : comparator(key, this.high) < 0;
56
+ return lowCheck && highCheck;
57
+ }
58
+ };
59
+ __name(_Range, "Range");
60
+ var Range = _Range;
61
+
8
62
  // src/data-structures/base/iterable-element-base.ts
9
63
  var _IterableElementBase = class _IterableElementBase {
10
64
  /**
@@ -27,7 +81,7 @@ var _IterableElementBase = class _IterableElementBase {
27
81
  if (options) {
28
82
  const { toElementFn } = options;
29
83
  if (typeof toElementFn === "function") this._toElementFn = toElementFn;
30
- else if (toElementFn) throw new TypeError("toElementFn must be a function type");
84
+ else if (toElementFn) raise(TypeError, "toElementFn must be a function type");
31
85
  }
32
86
  }
33
87
  /**
@@ -183,7 +237,7 @@ var _IterableElementBase = class _IterableElementBase {
183
237
  acc = initialValue;
184
238
  } else {
185
239
  const first = iter.next();
186
- if (first.done) throw new TypeError("Reduce of empty structure with no initial value");
240
+ if (first.done) raise(TypeError, "Reduce of empty structure with no initial value");
187
241
  acc = first.value;
188
242
  index = 1;
189
243
  }
@@ -749,6 +803,13 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
749
803
 
750
804
 
751
805
 
806
+
807
+
808
+
809
+
810
+
811
+
812
+
752
813
 
753
814
 
754
815
 
@@ -813,6 +874,13 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
813
874
 
814
875
 
815
876
 
877
+
878
+
879
+
880
+
881
+
882
+
883
+
816
884
 
817
885
 
818
886
 
@@ -883,6 +951,13 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
883
951
 
884
952
 
885
953
 
954
+
955
+
956
+
957
+
958
+
959
+
960
+
886
961
 
887
962
 
888
963
 
@@ -934,6 +1009,13 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
934
1009
 
935
1010
 
936
1011
 
1012
+
1013
+
1014
+
1015
+
1016
+
1017
+
1018
+
937
1019
 
938
1020
 
939
1021
 
@@ -1046,6 +1128,13 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1046
1128
 
1047
1129
 
1048
1130
 
1131
+
1132
+
1133
+
1134
+
1135
+
1136
+
1137
+
1049
1138
 
1050
1139
 
1051
1140
 
@@ -1102,6 +1191,13 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1102
1191
 
1103
1192
 
1104
1193
 
1194
+
1195
+
1196
+
1197
+
1198
+
1199
+
1200
+
1105
1201
 
1106
1202
 
1107
1203
 
@@ -1147,6 +1243,13 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1147
1243
 
1148
1244
 
1149
1245
 
1246
+
1247
+
1248
+
1249
+
1250
+
1251
+
1252
+
1150
1253
 
1151
1254
 
1152
1255
 
@@ -1198,6 +1301,13 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1198
1301
 
1199
1302
 
1200
1303
 
1304
+
1305
+
1306
+
1307
+
1308
+
1309
+
1310
+
1201
1311
 
1202
1312
 
1203
1313
 
@@ -1254,6 +1364,13 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1254
1364
 
1255
1365
 
1256
1366
 
1367
+
1368
+
1369
+
1370
+
1371
+
1372
+
1373
+
1257
1374
 
1258
1375
 
1259
1376
 
@@ -1318,6 +1435,13 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1318
1435
 
1319
1436
 
1320
1437
 
1438
+
1439
+
1440
+
1441
+
1442
+
1443
+
1444
+
1321
1445
 
1322
1446
 
1323
1447
 
@@ -1359,6 +1483,13 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1359
1483
 
1360
1484
 
1361
1485
 
1486
+
1487
+
1488
+
1489
+
1490
+
1491
+
1492
+
1362
1493
 
1363
1494
 
1364
1495
 
@@ -1406,6 +1537,13 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1406
1537
 
1407
1538
 
1408
1539
 
1540
+
1541
+
1542
+
1543
+
1544
+
1545
+
1546
+
1409
1547
 
1410
1548
 
1411
1549
 
@@ -1619,6 +1757,13 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1619
1757
 
1620
1758
 
1621
1759
 
1760
+
1761
+
1762
+
1763
+
1764
+
1765
+
1766
+
1622
1767
 
1623
1768
 
1624
1769
 
@@ -1670,6 +1815,13 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1670
1815
 
1671
1816
 
1672
1817
 
1818
+
1819
+
1820
+
1821
+
1822
+
1823
+
1824
+
1673
1825
 
1674
1826
 
1675
1827
 
@@ -1749,6 +1901,13 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1749
1901
 
1750
1902
 
1751
1903
 
1904
+
1905
+
1906
+
1907
+
1908
+
1909
+
1910
+
1752
1911
 
1753
1912
 
1754
1913
 
@@ -1898,54 +2057,6 @@ function elementOrPredicate(input, equals) {
1898
2057
  return (node) => equals(node.value, value);
1899
2058
  }
1900
2059
  __name(elementOrPredicate, "elementOrPredicate");
1901
-
1902
- // src/common/error.ts
1903
- var ERR = {
1904
- // Range / index
1905
- indexOutOfRange: /* @__PURE__ */ __name((index, min, max, ctx) => `${ctx ? ctx + ": " : ""}Index ${index} is out of range [${min}, ${max}].`, "indexOutOfRange"),
1906
- invalidIndex: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Index must be an integer.`, "invalidIndex"),
1907
- // Type / argument
1908
- invalidArgument: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidArgument"),
1909
- comparatorRequired: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Comparator is required for non-number/non-string/non-Date keys.`, "comparatorRequired"),
1910
- invalidKey: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidKey"),
1911
- notAFunction: /* @__PURE__ */ __name((name, ctx) => `${ctx ? ctx + ": " : ""}${name} must be a function.`, "notAFunction"),
1912
- invalidEntry: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Each entry must be a [key, value] tuple.`, "invalidEntry"),
1913
- invalidNaN: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}NaN is not a valid key.`, "invalidNaN"),
1914
- invalidDate: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Invalid Date key.`, "invalidDate"),
1915
- reduceEmpty: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Reduce of empty structure with no initial value.`, "reduceEmpty"),
1916
- callbackReturnType: /* @__PURE__ */ __name((expected, got, ctx) => `${ctx ? ctx + ": " : ""}Callback must return ${expected}; got ${got}.`, "callbackReturnType"),
1917
- // State / operation
1918
- invalidOperation: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidOperation"),
1919
- // Matrix
1920
- matrixDimensionMismatch: /* @__PURE__ */ __name((op) => `Matrix: Dimensions must be compatible for ${op}.`, "matrixDimensionMismatch"),
1921
- matrixSingular: /* @__PURE__ */ __name(() => "Matrix: Singular matrix, inverse does not exist.", "matrixSingular"),
1922
- matrixNotSquare: /* @__PURE__ */ __name(() => "Matrix: Must be square for inversion.", "matrixNotSquare"),
1923
- matrixNotRectangular: /* @__PURE__ */ __name(() => "Matrix: Must be rectangular for transposition.", "matrixNotRectangular"),
1924
- matrixRowMismatch: /* @__PURE__ */ __name((expected, got) => `Matrix: Expected row length ${expected}, but got ${got}.`, "matrixRowMismatch")
1925
- };
1926
-
1927
- // src/common/index.ts
1928
- var DFSOperation = /* @__PURE__ */ ((DFSOperation2) => {
1929
- DFSOperation2[DFSOperation2["VISIT"] = 0] = "VISIT";
1930
- DFSOperation2[DFSOperation2["PROCESS"] = 1] = "PROCESS";
1931
- return DFSOperation2;
1932
- })(DFSOperation || {});
1933
- var _Range = class _Range {
1934
- constructor(low, high, includeLow = true, includeHigh = true) {
1935
- this.low = low;
1936
- this.high = high;
1937
- this.includeLow = includeLow;
1938
- this.includeHigh = includeHigh;
1939
- }
1940
- // Determine whether a key is within the range
1941
- isInRange(key, comparator) {
1942
- const lowCheck = this.includeLow ? comparator(key, this.low) >= 0 : comparator(key, this.low) > 0;
1943
- const highCheck = this.includeHigh ? comparator(key, this.high) <= 0 : comparator(key, this.high) < 0;
1944
- return lowCheck && highCheck;
1945
- }
1946
- };
1947
- __name(_Range, "Range");
1948
- var Range = _Range;
1949
2060
  /**
1950
2061
  * data-structure-typed
1951
2062
  *
@@ -1959,5 +2070,6 @@ exports.ERR = ERR;
1959
2070
  exports.Range = Range;
1960
2071
  exports.SinglyLinkedList = SinglyLinkedList;
1961
2072
  exports.SinglyLinkedListNode = SinglyLinkedListNode;
2073
+ exports.raise = raise;
1962
2074
  //# sourceMappingURL=index.cjs.map
1963
2075
  //# sourceMappingURL=index.cjs.map