data-structure-typed 2.5.2 → 2.6.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.
Files changed (162) hide show
  1. package/.husky/pre-commit +3 -0
  2. package/CHANGELOG.md +3 -1
  3. package/MIGRATION.md +217 -0
  4. package/README.md +80 -8
  5. package/README_CN.md +569 -143
  6. package/SPECIFICATION.md +44 -14
  7. package/SPECIFICATION.zh-CN.md +44 -14
  8. package/dist/cjs/binary-tree.cjs +5841 -1678
  9. package/dist/cjs/graph.cjs +422 -14
  10. package/dist/cjs/hash.cjs +95 -7
  11. package/dist/cjs/heap.cjs +174 -16
  12. package/dist/cjs/index.cjs +7751 -2449
  13. package/dist/cjs/linked-list.cjs +443 -2
  14. package/dist/cjs/matrix.cjs +56 -0
  15. package/dist/cjs/priority-queue.cjs +172 -14
  16. package/dist/cjs/queue.cjs +435 -0
  17. package/dist/cjs/stack.cjs +103 -4
  18. package/dist/cjs/trie.cjs +106 -0
  19. package/dist/cjs-legacy/binary-tree.cjs +5933 -1772
  20. package/dist/cjs-legacy/graph.cjs +422 -14
  21. package/dist/cjs-legacy/hash.cjs +95 -7
  22. package/dist/cjs-legacy/heap.cjs +174 -16
  23. package/dist/cjs-legacy/index.cjs +8154 -2854
  24. package/dist/cjs-legacy/linked-list.cjs +443 -2
  25. package/dist/cjs-legacy/matrix.cjs +56 -0
  26. package/dist/cjs-legacy/priority-queue.cjs +172 -14
  27. package/dist/cjs-legacy/queue.cjs +435 -0
  28. package/dist/cjs-legacy/stack.cjs +103 -4
  29. package/dist/cjs-legacy/trie.cjs +106 -0
  30. package/dist/esm/binary-tree.mjs +5841 -1678
  31. package/dist/esm/graph.mjs +422 -14
  32. package/dist/esm/hash.mjs +95 -7
  33. package/dist/esm/heap.mjs +174 -16
  34. package/dist/esm/index.mjs +7751 -2449
  35. package/dist/esm/linked-list.mjs +443 -2
  36. package/dist/esm/matrix.mjs +56 -0
  37. package/dist/esm/priority-queue.mjs +172 -14
  38. package/dist/esm/queue.mjs +435 -0
  39. package/dist/esm/stack.mjs +103 -4
  40. package/dist/esm/trie.mjs +106 -0
  41. package/dist/esm-legacy/binary-tree.mjs +5933 -1772
  42. package/dist/esm-legacy/graph.mjs +422 -14
  43. package/dist/esm-legacy/hash.mjs +95 -7
  44. package/dist/esm-legacy/heap.mjs +174 -16
  45. package/dist/esm-legacy/index.mjs +8154 -2854
  46. package/dist/esm-legacy/linked-list.mjs +443 -2
  47. package/dist/esm-legacy/matrix.mjs +56 -0
  48. package/dist/esm-legacy/priority-queue.mjs +172 -14
  49. package/dist/esm-legacy/queue.mjs +435 -0
  50. package/dist/esm-legacy/stack.mjs +103 -4
  51. package/dist/esm-legacy/trie.mjs +106 -0
  52. package/dist/types/data-structures/base/iterable-element-base.d.ts +17 -0
  53. package/dist/types/data-structures/base/linear-base.d.ts +6 -0
  54. package/dist/types/data-structures/binary-tree/avl-tree.d.ts +86 -2
  55. package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +98 -0
  56. package/dist/types/data-structures/binary-tree/binary-tree.d.ts +191 -15
  57. package/dist/types/data-structures/binary-tree/bst.d.ts +171 -3
  58. package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +136 -8
  59. package/dist/types/data-structures/binary-tree/segment-tree.d.ts +42 -0
  60. package/dist/types/data-structures/binary-tree/tree-map.d.ts +1061 -167
  61. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +1232 -355
  62. package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +916 -194
  63. package/dist/types/data-structures/binary-tree/tree-set.d.ts +1078 -141
  64. package/dist/types/data-structures/graph/directed-graph.d.ts +70 -0
  65. package/dist/types/data-structures/graph/undirected-graph.d.ts +63 -0
  66. package/dist/types/data-structures/hash/hash-map.d.ts +84 -6
  67. package/dist/types/data-structures/heap/heap.d.ts +140 -12
  68. package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +150 -2
  69. package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +106 -1
  70. package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +126 -0
  71. package/dist/types/data-structures/matrix/matrix.d.ts +56 -0
  72. package/dist/types/data-structures/queue/deque.d.ts +171 -0
  73. package/dist/types/data-structures/queue/queue.d.ts +97 -0
  74. package/dist/types/data-structures/stack/stack.d.ts +72 -2
  75. package/dist/types/data-structures/trie/trie.d.ts +84 -0
  76. package/dist/types/interfaces/binary-tree.d.ts +2 -3
  77. package/dist/umd/data-structure-typed.js +7784 -2484
  78. package/dist/umd/data-structure-typed.min.js +4 -4
  79. package/docs-site-docusaurus/docs/api/classes/AVLTree.md +188 -200
  80. package/docs-site-docusaurus/docs/api/classes/AVLTreeNode.md +11 -11
  81. package/docs-site-docusaurus/docs/api/classes/AbstractGraph.md +62 -62
  82. package/docs-site-docusaurus/docs/api/classes/BST.md +183 -195
  83. package/docs-site-docusaurus/docs/api/classes/BSTNode.md +13 -13
  84. package/docs-site-docusaurus/docs/api/classes/BinaryIndexedTree.md +15 -15
  85. package/docs-site-docusaurus/docs/api/classes/BinaryTree.md +143 -155
  86. package/docs-site-docusaurus/docs/api/classes/BinaryTreeNode.md +13 -13
  87. package/docs-site-docusaurus/docs/api/classes/Deque.md +99 -85
  88. package/docs-site-docusaurus/docs/api/classes/DirectedGraph.md +73 -73
  89. package/docs-site-docusaurus/docs/api/classes/DoublyLinkedList.md +100 -70
  90. package/docs-site-docusaurus/docs/api/classes/DoublyLinkedListNode.md +8 -8
  91. package/docs-site-docusaurus/docs/api/classes/FibonacciHeap.md +12 -12
  92. package/docs-site-docusaurus/docs/api/classes/FibonacciHeapNode.md +1 -1
  93. package/docs-site-docusaurus/docs/api/classes/HashMap.md +38 -38
  94. package/docs-site-docusaurus/docs/api/classes/Heap.md +96 -85
  95. package/docs-site-docusaurus/docs/api/classes/IterableElementBase.md +25 -25
  96. package/docs-site-docusaurus/docs/api/classes/IterableEntryBase.md +23 -23
  97. package/docs-site-docusaurus/docs/api/classes/LinearBase.md +48 -48
  98. package/docs-site-docusaurus/docs/api/classes/LinearLinkedBase.md +52 -52
  99. package/docs-site-docusaurus/docs/api/classes/LinkedHashMap.md +46 -42
  100. package/docs-site-docusaurus/docs/api/classes/LinkedListNode.md +6 -6
  101. package/docs-site-docusaurus/docs/api/classes/LinkedListQueue.md +74 -74
  102. package/docs-site-docusaurus/docs/api/classes/MapGraph.md +73 -73
  103. package/docs-site-docusaurus/docs/api/classes/Matrix.md +31 -31
  104. package/docs-site-docusaurus/docs/api/classes/MaxHeap.md +104 -89
  105. package/docs-site-docusaurus/docs/api/classes/MaxPriorityQueue.md +104 -89
  106. package/docs-site-docusaurus/docs/api/classes/MinHeap.md +104 -89
  107. package/docs-site-docusaurus/docs/api/classes/MinPriorityQueue.md +104 -89
  108. package/docs-site-docusaurus/docs/api/classes/Navigator.md +5 -5
  109. package/docs-site-docusaurus/docs/api/classes/PriorityQueue.md +103 -88
  110. package/docs-site-docusaurus/docs/api/classes/Queue.md +111 -59
  111. package/docs-site-docusaurus/docs/api/classes/RedBlackTree.md +200 -212
  112. package/docs-site-docusaurus/docs/api/classes/SegmentTree.md +10 -10
  113. package/docs-site-docusaurus/docs/api/classes/SinglyLinkedList.md +75 -75
  114. package/docs-site-docusaurus/docs/api/classes/SinglyLinkedListNode.md +6 -6
  115. package/docs-site-docusaurus/docs/api/classes/SkipList.md +37 -37
  116. package/docs-site-docusaurus/docs/api/classes/Stack.md +42 -42
  117. package/docs-site-docusaurus/docs/api/classes/TreeMap.md +107 -36
  118. package/docs-site-docusaurus/docs/api/classes/TreeMultiMap.md +43 -43
  119. package/docs-site-docusaurus/docs/api/classes/TreeSet.md +106 -35
  120. package/docs-site-docusaurus/docs/api/classes/Trie.md +43 -43
  121. package/docs-site-docusaurus/docs/api/classes/TrieNode.md +8 -8
  122. package/docs-site-docusaurus/docs/api/classes/UndirectedGraph.md +72 -72
  123. package/docs-site-docusaurus/docs/guide/architecture.md +75 -7
  124. package/docs-site-docusaurus/docs/guide/concepts.md +53 -34
  125. package/docs-site-docusaurus/docs/guide/faq.md +53 -0
  126. package/docs-site-docusaurus/docs/guide/guides.md +8 -9
  127. package/docs-site-docusaurus/docs/guide/integrations.md +74 -177
  128. package/docs-site-docusaurus/docs/guide/overview.md +131 -17
  129. package/docs-site-docusaurus/src/pages/index.tsx +4 -0
  130. package/docs-site-docusaurus/typedoc.json +1 -0
  131. package/jest.integration.config.js +1 -2
  132. package/package.json +10 -7
  133. package/src/data-structures/base/iterable-element-base.ts +32 -0
  134. package/src/data-structures/base/linear-base.ts +11 -0
  135. package/src/data-structures/binary-tree/avl-tree.ts +88 -5
  136. package/src/data-structures/binary-tree/binary-indexed-tree.ts +98 -0
  137. package/src/data-structures/binary-tree/binary-tree.ts +242 -81
  138. package/src/data-structures/binary-tree/bst.ts +173 -7
  139. package/src/data-structures/binary-tree/red-black-tree.ts +139 -15
  140. package/src/data-structures/binary-tree/segment-tree.ts +42 -0
  141. package/src/data-structures/binary-tree/tree-map.ts +948 -36
  142. package/src/data-structures/binary-tree/tree-multi-map.ts +893 -13
  143. package/src/data-structures/binary-tree/tree-multi-set.ts +761 -33
  144. package/src/data-structures/binary-tree/tree-set.ts +1260 -251
  145. package/src/data-structures/graph/directed-graph.ts +71 -1
  146. package/src/data-structures/graph/undirected-graph.ts +64 -1
  147. package/src/data-structures/hash/hash-map.ts +100 -12
  148. package/src/data-structures/heap/heap.ts +149 -19
  149. package/src/data-structures/linked-list/doubly-linked-list.ts +178 -2
  150. package/src/data-structures/linked-list/singly-linked-list.ts +106 -1
  151. package/src/data-structures/linked-list/skip-linked-list.ts +126 -0
  152. package/src/data-structures/matrix/matrix.ts +56 -0
  153. package/src/data-structures/queue/deque.ts +187 -0
  154. package/src/data-structures/queue/queue.ts +109 -0
  155. package/src/data-structures/stack/stack.ts +75 -5
  156. package/src/data-structures/trie/trie.ts +84 -0
  157. package/src/interfaces/binary-tree.ts +1 -9
  158. package/.vitepress/cache/deps_temp_51f5f1b0/chunk-7OIKW5WK.js +0 -12984
  159. package/.vitepress/cache/deps_temp_51f5f1b0/package.json +0 -3
  160. package/.vitepress/cache/deps_temp_51f5f1b0/vitepress___@vue_devtools-api.js +0 -4505
  161. package/.vitepress/cache/deps_temp_51f5f1b0/vitepress___@vueuse_core.js +0 -9731
  162. package/.vitepress/cache/deps_temp_51f5f1b0/vue.js +0 -347
@@ -385,6 +385,35 @@ var _IterableElementBase = class _IterableElementBase {
385
385
  for (const ele of this) if (ele === element) return true;
386
386
  return false;
387
387
  }
388
+ /**
389
+ * Check whether a value exists (Array-compatible alias for `has`).
390
+ * @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1).
391
+ * @param element - Element to search for (uses `===`).
392
+ * @returns `true` if found.
393
+ */
394
+ includes(element) {
395
+ return this.has(element);
396
+ }
397
+ /**
398
+ * Return an iterator of `[index, value]` pairs (Array-compatible).
399
+ * @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1) per step.
400
+ */
401
+ *entries() {
402
+ let index = 0;
403
+ for (const value of this) {
404
+ yield [index++, value];
405
+ }
406
+ }
407
+ /**
408
+ * Return an iterator of numeric indices (Array-compatible).
409
+ * @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1) per step.
410
+ */
411
+ *keys() {
412
+ let index = 0;
413
+ for (const _ of this) {
414
+ yield index++;
415
+ }
416
+ }
388
417
  /**
389
418
  * Reduces all elements to a single accumulated value.
390
419
  *
@@ -646,6 +675,16 @@ var _LinearBase = class _LinearBase extends IterableElementBase {
646
675
  }
647
676
  return this;
648
677
  }
678
+ /**
679
+ * Return a new instance of the same type with elements in reverse order (non-mutating).
680
+ * @remarks Provided for familiarity when migrating from Array (ES2023 `toReversed`). Time O(n), Space O(n).
681
+ * @returns A new reversed instance.
682
+ */
683
+ toReversed() {
684
+ const cloned = this.clone();
685
+ cloned.reverse();
686
+ return cloned;
687
+ }
649
688
  };
650
689
  __name(_LinearBase, "LinearBase");
651
690
  var LinearBase = _LinearBase;
@@ -717,6 +756,13 @@ var _Heap = class _Heap extends IterableElementBase {
717
756
 
718
757
 
719
758
 
759
+
760
+
761
+
762
+
763
+
764
+
765
+
720
766
 
721
767
 
722
768
 
@@ -774,7 +820,7 @@ var _Heap = class _Heap extends IterableElementBase {
774
820
  }
775
821
  /**
776
822
  * Insert an element.
777
- * @remarks Time O(1) amortized, Space O(1)
823
+ * @remarks Time O(log N) amortized, Space O(1)
778
824
  * @param element - Element to insert.
779
825
  * @returns True.
780
826
 
@@ -804,6 +850,13 @@ var _Heap = class _Heap extends IterableElementBase {
804
850
 
805
851
 
806
852
 
853
+
854
+
855
+
856
+
857
+
858
+
859
+
807
860
 
808
861
 
809
862
 
@@ -861,6 +914,13 @@ var _Heap = class _Heap extends IterableElementBase {
861
914
 
862
915
 
863
916
 
917
+
918
+
919
+
920
+
921
+
922
+
923
+
864
924
 
865
925
 
866
926
 
@@ -924,7 +984,41 @@ var _Heap = class _Heap extends IterableElementBase {
924
984
 
925
985
 
926
986
 
987
+
988
+
989
+
927
990
 
991
+
992
+
993
+
994
+ * @example
995
+ * // Heap with custom comparator (MaxHeap behavior)
996
+ * interface Task {
997
+ * id: number;
998
+ * priority: number;
999
+ * name: string;
1000
+ * }
1001
+ *
1002
+ * // Custom comparator for max heap behavior (higher priority first)
1003
+ * const tasks: Task[] = [
1004
+ * { id: 1, priority: 5, name: 'Email' },
1005
+ * { id: 2, priority: 3, name: 'Chat' },
1006
+ * { id: 3, priority: 8, name: 'Alert' }
1007
+ * ];
1008
+ *
1009
+ * const maxHeap = new Heap(tasks, {
1010
+ * comparator: (a: Task, b: Task) => b.priority - a.priority
1011
+ * });
1012
+ *
1013
+ * console.log(maxHeap.size); // 3;
1014
+ *
1015
+ * // Peek returns highest priority task
1016
+ * const topTask = maxHeap.peek();
1017
+ * console.log(topTask?.priority); // 8;
1018
+ * console.log(topTask?.name); // 'Alert';
1019
+ */
1020
+ /**
1021
+ * @deprecated Use `pop` instead. Will be removed in a future major version.
928
1022
 
929
1023
 
930
1024
 
@@ -955,6 +1049,14 @@ var _Heap = class _Heap extends IterableElementBase {
955
1049
  * console.log(topTask?.name); // 'Alert';
956
1050
  */
957
1051
  poll() {
1052
+ return this.pop();
1053
+ }
1054
+ /**
1055
+ * Remove and return the top element (min or max depending on comparator).
1056
+ * @remarks Time O(log N) amortized, Space O(1)
1057
+ * @returns The removed top element, or undefined if empty.
1058
+ */
1059
+ pop() {
958
1060
  if (this.elements.length === 0) return;
959
1061
  const value = this.elements[0];
960
1062
  const last = this.elements.pop();
@@ -995,6 +1097,13 @@ var _Heap = class _Heap extends IterableElementBase {
995
1097
 
996
1098
 
997
1099
 
1100
+
1101
+
1102
+
1103
+
1104
+
1105
+
1106
+
998
1107
 
999
1108
 
1000
1109
 
@@ -1095,6 +1204,13 @@ var _Heap = class _Heap extends IterableElementBase {
1095
1204
 
1096
1205
 
1097
1206
 
1207
+
1208
+
1209
+
1210
+
1211
+
1212
+
1213
+
1098
1214
 
1099
1215
 
1100
1216
 
@@ -1142,6 +1258,13 @@ var _Heap = class _Heap extends IterableElementBase {
1142
1258
 
1143
1259
 
1144
1260
 
1261
+
1262
+
1263
+
1264
+
1265
+
1266
+
1267
+
1145
1268
 
1146
1269
 
1147
1270
 
@@ -1159,16 +1282,6 @@ var _Heap = class _Heap extends IterableElementBase {
1159
1282
  clear() {
1160
1283
  this._elements = [];
1161
1284
  }
1162
- /**
1163
- * Replace the backing array and rebuild the heap.
1164
- * @remarks Time O(N), Space O(N)
1165
- * @param elements - Iterable used to refill the heap.
1166
- * @returns Array of per-node results from fixing steps.
1167
- */
1168
- refill(elements) {
1169
- this._elements = Array.from(elements);
1170
- return this.fix();
1171
- }
1172
1285
  /**
1173
1286
  * Check if an equal element exists in the heap.
1174
1287
  * @remarks Time O(N), Space O(1)
@@ -1192,6 +1305,13 @@ var _Heap = class _Heap extends IterableElementBase {
1192
1305
 
1193
1306
 
1194
1307
 
1308
+
1309
+
1310
+
1311
+
1312
+
1313
+
1314
+
1195
1315
 
1196
1316
 
1197
1317
 
@@ -1239,6 +1359,13 @@ var _Heap = class _Heap extends IterableElementBase {
1239
1359
 
1240
1360
 
1241
1361
 
1362
+
1363
+
1364
+
1365
+
1366
+
1367
+
1368
+
1242
1369
 
1243
1370
 
1244
1371
 
@@ -1263,7 +1390,7 @@ var _Heap = class _Heap extends IterableElementBase {
1263
1390
  }
1264
1391
  if (index < 0) return false;
1265
1392
  if (index === 0) {
1266
- this.poll();
1393
+ this.pop();
1267
1394
  } else if (index === this.elements.length - 1) {
1268
1395
  this.elements.pop();
1269
1396
  } else {
@@ -1273,13 +1400,19 @@ var _Heap = class _Heap extends IterableElementBase {
1273
1400
  }
1274
1401
  return true;
1275
1402
  }
1403
+ /**
1404
+ * @deprecated Use `deleteWhere` instead. Will be removed in a future major version.
1405
+ */
1406
+ deleteBy(predicate) {
1407
+ return this.deleteWhere(predicate);
1408
+ }
1276
1409
  /**
1277
1410
  * Delete the first element that matches a predicate.
1278
1411
  * @remarks Time O(N), Space O(1)
1279
1412
  * @param predicate - Function (element, index, heap) → boolean.
1280
1413
  * @returns True if an element was removed.
1281
1414
  */
1282
- deleteBy(predicate) {
1415
+ deleteWhere(predicate) {
1283
1416
  let idx = -1;
1284
1417
  for (let i = 0; i < this.elements.length; i++) {
1285
1418
  if (predicate(this.elements[i], i, this)) {
@@ -1289,7 +1422,7 @@ var _Heap = class _Heap extends IterableElementBase {
1289
1422
  }
1290
1423
  if (idx < 0) return false;
1291
1424
  if (idx === 0) {
1292
- this.poll();
1425
+ this.pop();
1293
1426
  } else if (idx === this.elements.length - 1) {
1294
1427
  this.elements.pop();
1295
1428
  } else {
@@ -1332,6 +1465,13 @@ var _Heap = class _Heap extends IterableElementBase {
1332
1465
 
1333
1466
 
1334
1467
 
1468
+
1469
+
1470
+
1471
+
1472
+
1473
+
1474
+
1335
1475
 
1336
1476
 
1337
1477
 
@@ -1412,6 +1552,13 @@ var _Heap = class _Heap extends IterableElementBase {
1412
1552
 
1413
1553
 
1414
1554
 
1555
+
1556
+
1557
+
1558
+
1559
+
1560
+
1561
+
1415
1562
 
1416
1563
 
1417
1564
 
@@ -1465,6 +1612,13 @@ var _Heap = class _Heap extends IterableElementBase {
1465
1612
 
1466
1613
 
1467
1614
 
1615
+
1616
+
1617
+
1618
+
1619
+
1620
+
1621
+
1468
1622
 
1469
1623
 
1470
1624
 
@@ -1517,6 +1671,13 @@ var _Heap = class _Heap extends IterableElementBase {
1517
1671
 
1518
1672
 
1519
1673
 
1674
+
1675
+
1676
+
1677
+
1678
+
1679
+
1680
+
1520
1681
 
1521
1682
 
1522
1683
 
@@ -1576,6 +1737,13 @@ var _Heap = class _Heap extends IterableElementBase {
1576
1737
 
1577
1738
 
1578
1739
 
1740
+
1741
+
1742
+
1743
+
1744
+
1745
+
1746
+
1579
1747
 
1580
1748
 
1581
1749
 
@@ -1779,6 +1947,13 @@ var _Queue = class _Queue extends LinearBase {
1779
1947
 
1780
1948
 
1781
1949
 
1950
+
1951
+
1952
+
1953
+
1954
+
1955
+
1956
+
1782
1957
 
1783
1958
 
1784
1959
 
@@ -1829,6 +2004,13 @@ var _Queue = class _Queue extends LinearBase {
1829
2004
 
1830
2005
 
1831
2006
 
2007
+
2008
+
2009
+
2010
+
2011
+
2012
+
2013
+
1832
2014
 
1833
2015
 
1834
2016
 
@@ -1846,6 +2028,14 @@ var _Queue = class _Queue extends LinearBase {
1846
2028
  get first() {
1847
2029
  return this.length > 0 ? this.elements[this._offset] : void 0;
1848
2030
  }
2031
+ /**
2032
+ * Peek at the front element without removing it (alias for `first`).
2033
+ * @remarks Time O(1), Space O(1)
2034
+ * @returns Front element or undefined.
2035
+ */
2036
+ peek() {
2037
+ return this.first;
2038
+ }
1849
2039
  /**
1850
2040
  * Get the last element (back) without removing it.
1851
2041
  * @remarks Time O(1), Space O(1)
@@ -1895,6 +2085,13 @@ var _Queue = class _Queue extends LinearBase {
1895
2085
 
1896
2086
 
1897
2087
 
2088
+
2089
+
2090
+
2091
+
2092
+
2093
+
2094
+
1898
2095
 
1899
2096
 
1900
2097
 
@@ -1957,6 +2154,13 @@ var _Queue = class _Queue extends LinearBase {
1957
2154
 
1958
2155
 
1959
2156
 
2157
+
2158
+
2159
+
2160
+
2161
+
2162
+
2163
+
1960
2164
 
1961
2165
 
1962
2166
 
@@ -2026,6 +2230,13 @@ var _Queue = class _Queue extends LinearBase {
2026
2230
 
2027
2231
 
2028
2232
 
2233
+
2234
+
2235
+
2236
+
2237
+
2238
+
2239
+
2029
2240
 
2030
2241
 
2031
2242
 
@@ -2085,6 +2296,13 @@ var _Queue = class _Queue extends LinearBase {
2085
2296
 
2086
2297
 
2087
2298
 
2299
+
2300
+
2301
+
2302
+
2303
+
2304
+
2305
+
2088
2306
 
2089
2307
 
2090
2308
 
@@ -2137,6 +2355,13 @@ var _Queue = class _Queue extends LinearBase {
2137
2355
 
2138
2356
 
2139
2357
 
2358
+
2359
+
2360
+
2361
+
2362
+
2363
+
2364
+
2140
2365
 
2141
2366
 
2142
2367
 
@@ -2191,6 +2416,21 @@ var _Queue = class _Queue extends LinearBase {
2191
2416
  this._elements[this._offset + index] = newElement;
2192
2417
  return true;
2193
2418
  }
2419
+ /**
2420
+ * Delete the first element that satisfies a predicate.
2421
+ * @remarks Time O(N), Space O(N)
2422
+ * @param predicate - Function (value, index, queue) → boolean to decide deletion.
2423
+ * @returns True if a match was removed.
2424
+ */
2425
+ deleteWhere(predicate) {
2426
+ for (let i = 0; i < this.length; i++) {
2427
+ if (predicate(this._elements[this._offset + i], i, this)) {
2428
+ this.deleteAt(i);
2429
+ return true;
2430
+ }
2431
+ }
2432
+ return false;
2433
+ }
2194
2434
  /**
2195
2435
  * Reverse the queue in-place by compacting then reversing.
2196
2436
  * @remarks Time O(N), Space O(N)
@@ -2230,6 +2470,13 @@ var _Queue = class _Queue extends LinearBase {
2230
2470
 
2231
2471
 
2232
2472
 
2473
+
2474
+
2475
+
2476
+
2477
+
2478
+
2479
+
2233
2480
 
2234
2481
 
2235
2482
 
@@ -2276,6 +2523,13 @@ var _Queue = class _Queue extends LinearBase {
2276
2523
 
2277
2524
 
2278
2525
 
2526
+
2527
+
2528
+
2529
+
2530
+
2531
+
2532
+
2279
2533
 
2280
2534
 
2281
2535
 
@@ -2345,6 +2599,13 @@ var _Queue = class _Queue extends LinearBase {
2345
2599
 
2346
2600
 
2347
2601
 
2602
+
2603
+
2604
+
2605
+
2606
+
2607
+
2608
+
2348
2609
 
2349
2610
 
2350
2611
 
@@ -2398,6 +2659,13 @@ var _Queue = class _Queue extends LinearBase {
2398
2659
 
2399
2660
 
2400
2661
 
2662
+
2663
+
2664
+
2665
+
2666
+
2667
+
2668
+
2401
2669
 
2402
2670
 
2403
2671
 
@@ -2455,6 +2723,13 @@ var _Queue = class _Queue extends LinearBase {
2455
2723
 
2456
2724
 
2457
2725
 
2726
+
2727
+
2728
+
2729
+
2730
+
2731
+
2732
+
2458
2733
 
2459
2734
 
2460
2735
 
@@ -3597,6 +3872,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
3597
3872
 
3598
3873
 
3599
3874
 
3875
+
3876
+
3877
+
3878
+
3879
+
3880
+
3881
+
3600
3882
 
3601
3883
 
3602
3884
 
@@ -3685,6 +3967,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
3685
3967
 
3686
3968
 
3687
3969
 
3970
+
3971
+
3972
+
3973
+
3974
+
3975
+
3976
+
3688
3977
 
3689
3978
 
3690
3979
 
@@ -3771,6 +4060,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
3771
4060
 
3772
4061
 
3773
4062
 
4063
+
4064
+
4065
+
4066
+
4067
+
4068
+
4069
+
3774
4070
 
3775
4071
 
3776
4072
 
@@ -3848,6 +4144,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
3848
4144
 
3849
4145
 
3850
4146
 
4147
+
4148
+
4149
+
4150
+
4151
+
4152
+
4153
+
3851
4154
 
3852
4155
 
3853
4156
 
@@ -3902,6 +4205,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
3902
4205
 
3903
4206
 
3904
4207
 
4208
+
4209
+
4210
+
4211
+
4212
+
4213
+
4214
+
3905
4215
 
3906
4216
 
3907
4217
 
@@ -4009,6 +4319,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
4009
4319
 
4010
4320
 
4011
4321
 
4322
+
4323
+
4324
+
4325
+
4326
+
4327
+
4328
+
4012
4329
 
4013
4330
 
4014
4331
 
@@ -4097,6 +4414,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
4097
4414
 
4098
4415
 
4099
4416
 
4417
+
4418
+
4419
+
4420
+
4421
+
4422
+
4423
+
4100
4424
 
4101
4425
 
4102
4426
 
@@ -4147,6 +4471,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
4147
4471
 
4148
4472
 
4149
4473
 
4474
+
4475
+
4476
+
4477
+
4478
+
4479
+
4480
+
4150
4481
 
4151
4482
 
4152
4483
 
@@ -4250,6 +4581,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
4250
4581
 
4251
4582
 
4252
4583
 
4584
+
4585
+
4586
+
4587
+
4588
+
4589
+
4590
+
4253
4591
 
4254
4592
 
4255
4593
 
@@ -4356,6 +4694,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
4356
4694
 
4357
4695
 
4358
4696
 
4697
+
4698
+
4699
+
4700
+
4701
+
4702
+
4703
+
4359
4704
 
4360
4705
 
4361
4706
 
@@ -4526,6 +4871,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
4526
4871
 
4527
4872
 
4528
4873
 
4874
+
4875
+
4876
+
4877
+
4878
+
4879
+
4880
+
4529
4881
 
4530
4882
 
4531
4883
 
@@ -4611,6 +4963,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
4611
4963
 
4612
4964
 
4613
4965
 
4966
+
4967
+
4968
+
4969
+
4970
+
4971
+
4972
+
4614
4973
 
4615
4974
 
4616
4975
 
@@ -4695,6 +5054,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
4695
5054
 
4696
5055
 
4697
5056
 
5057
+
5058
+
5059
+
5060
+
5061
+
5062
+
5063
+
4698
5064
 
4699
5065
 
4700
5066
 
@@ -4794,6 +5160,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
4794
5160
 
4795
5161
 
4796
5162
 
5163
+
5164
+
5165
+
5166
+
5167
+
5168
+
5169
+
4797
5170
 
4798
5171
 
4799
5172
 
@@ -4848,6 +5221,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
4848
5221
 
4849
5222
 
4850
5223
 
5224
+
5225
+
5226
+
5227
+
5228
+
5229
+
5230
+
4851
5231
 
4852
5232
 
4853
5233
 
@@ -4972,6 +5352,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
4972
5352
 
4973
5353
 
4974
5354
 
5355
+
5356
+
5357
+
5358
+
5359
+
5360
+
5361
+
4975
5362
 
4976
5363
 
4977
5364
 
@@ -5118,6 +5505,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
5118
5505
 
5119
5506
 
5120
5507
 
5508
+
5509
+
5510
+
5511
+
5512
+
5513
+
5514
+
5121
5515
 
5122
5516
 
5123
5517
 
@@ -5186,6 +5580,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
5186
5580
 
5187
5581
 
5188
5582
 
5583
+
5584
+
5585
+
5586
+
5587
+
5588
+
5589
+
5189
5590
 
5190
5591
 
5191
5592
 
@@ -5236,6 +5637,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
5236
5637
 
5237
5638
 
5238
5639
 
5640
+
5641
+
5642
+
5643
+
5644
+
5645
+
5646
+
5239
5647
 
5240
5648
 
5241
5649