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
package/dist/cjs/hash.cjs CHANGED
@@ -322,6 +322,13 @@ var HashMap = class extends IterableEntryBase {
322
322
 
323
323
 
324
324
 
325
+
326
+
327
+
328
+
329
+
330
+
331
+
325
332
 
326
333
 
327
334
 
@@ -367,6 +374,13 @@ var HashMap = class extends IterableEntryBase {
367
374
 
368
375
 
369
376
 
377
+
378
+
379
+
380
+
381
+
382
+
383
+
370
384
 
371
385
 
372
386
 
@@ -455,6 +469,20 @@ var HashMap = class extends IterableEntryBase {
455
469
 
456
470
 
457
471
 
472
+
473
+
474
+
475
+
476
+
477
+
478
+
479
+
480
+
481
+
482
+
483
+
484
+
485
+
458
486
 
459
487
 
460
488
 
@@ -498,7 +526,7 @@ var HashMap = class extends IterableEntryBase {
498
526
  if (this.store[strKey] === void 0) this._size++;
499
527
  this._store[strKey] = { key, value };
500
528
  }
501
- return true;
529
+ return this;
502
530
  }
503
531
  /**
504
532
  * Insert many entries from an iterable.
@@ -530,6 +558,13 @@ var HashMap = class extends IterableEntryBase {
530
558
 
531
559
 
532
560
 
561
+
562
+
563
+
564
+
565
+
566
+
567
+
533
568
 
534
569
 
535
570
 
@@ -550,7 +585,11 @@ var HashMap = class extends IterableEntryBase {
550
585
  let key, value;
551
586
  if (this.isEntry(rawEle)) [key, value] = rawEle;
552
587
  else if (this._toEntryFn) [key, value] = this._toEntryFn(rawEle);
553
- if (key !== void 0 && value !== void 0) results.push(this.set(key, value));
588
+ if (key !== void 0 && value !== void 0) {
589
+ const sizeBefore = this._size;
590
+ this.set(key, value);
591
+ results.push(sizeBefore < this._size);
592
+ }
554
593
  }
555
594
  return results;
556
595
  }
@@ -586,6 +625,13 @@ var HashMap = class extends IterableEntryBase {
586
625
 
587
626
 
588
627
 
628
+
629
+
630
+
631
+
632
+
633
+
634
+
589
635
 
590
636
 
591
637
 
@@ -653,6 +699,13 @@ var HashMap = class extends IterableEntryBase {
653
699
 
654
700
 
655
701
 
702
+
703
+
704
+
705
+
706
+
707
+
708
+
656
709
 
657
710
 
658
711
 
@@ -705,6 +758,13 @@ var HashMap = class extends IterableEntryBase {
705
758
 
706
759
 
707
760
 
761
+
762
+
763
+
764
+
765
+
766
+
767
+
708
768
 
709
769
 
710
770
 
@@ -775,6 +835,13 @@ var HashMap = class extends IterableEntryBase {
775
835
 
776
836
 
777
837
 
838
+
839
+
840
+
841
+
842
+
843
+
844
+
778
845
 
779
846
 
780
847
 
@@ -828,6 +895,13 @@ var HashMap = class extends IterableEntryBase {
828
895
 
829
896
 
830
897
 
898
+
899
+
900
+
901
+
902
+
903
+
904
+
831
905
 
832
906
 
833
907
 
@@ -883,6 +957,13 @@ var HashMap = class extends IterableEntryBase {
883
957
 
884
958
 
885
959
 
960
+
961
+
962
+
963
+
964
+
965
+
966
+
886
967
 
887
968
 
888
969
 
@@ -1096,7 +1177,7 @@ var LinkedHashMap = class extends IterableEntryBase {
1096
1177
  * @remarks Time O(1), Space O(1)
1097
1178
  * @param key - Key.
1098
1179
  * @param [value] - Value.
1099
- * @returns True when the operation succeeds.
1180
+ * @returns This map (for chaining).
1100
1181
  */
1101
1182
  set(key, value) {
1102
1183
  let node;
@@ -1131,7 +1212,7 @@ var LinkedHashMap = class extends IterableEntryBase {
1131
1212
  this._sentinel.prev = node;
1132
1213
  this._size++;
1133
1214
  }
1134
- return true;
1215
+ return this;
1135
1216
  }
1136
1217
  setMany(entryOrRawElements) {
1137
1218
  const results = [];
@@ -1139,7 +1220,11 @@ var LinkedHashMap = class extends IterableEntryBase {
1139
1220
  let key, value;
1140
1221
  if (this.isEntry(rawEle)) [key, value] = rawEle;
1141
1222
  else if (this._toEntryFn) [key, value] = this._toEntryFn(rawEle);
1142
- if (key !== void 0 && value !== void 0) results.push(this.set(key, value));
1223
+ if (key !== void 0 && value !== void 0) {
1224
+ const sizeBefore = this._size;
1225
+ this.set(key, value);
1226
+ results.push(sizeBefore < this._size);
1227
+ }
1143
1228
  }
1144
1229
  return results;
1145
1230
  }
@@ -1217,13 +1302,16 @@ var LinkedHashMap = class extends IterableEntryBase {
1217
1302
  * Delete the entry at a given index.
1218
1303
  * @remarks Time O(N), Space O(1)
1219
1304
  * @param index - Zero-based index.
1220
- * @returns True if removed.
1305
+ * @returns The removed entry [key, value].
1306
+ * @throws {RangeError} If index is out of bounds.
1221
1307
  */
1222
1308
  deleteAt(index) {
1223
1309
  rangeCheck(index, 0, this._size - 1);
1224
1310
  let node = this.head;
1225
1311
  while (index--) node = node.next;
1226
- return this._deleteNode(node);
1312
+ const entry = [node.key, node.value];
1313
+ this._deleteNode(node);
1314
+ return entry;
1227
1315
  }
1228
1316
  isEmpty() {
1229
1317
  return this._size === 0;
package/dist/cjs/heap.cjs CHANGED
@@ -186,6 +186,35 @@ var IterableElementBase = class {
186
186
  for (const ele of this) if (ele === element) return true;
187
187
  return false;
188
188
  }
189
+ /**
190
+ * Check whether a value exists (Array-compatible alias for `has`).
191
+ * @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1).
192
+ * @param element - Element to search for (uses `===`).
193
+ * @returns `true` if found.
194
+ */
195
+ includes(element) {
196
+ return this.has(element);
197
+ }
198
+ /**
199
+ * Return an iterator of `[index, value]` pairs (Array-compatible).
200
+ * @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1) per step.
201
+ */
202
+ *entries() {
203
+ let index = 0;
204
+ for (const value of this) {
205
+ yield [index++, value];
206
+ }
207
+ }
208
+ /**
209
+ * Return an iterator of numeric indices (Array-compatible).
210
+ * @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1) per step.
211
+ */
212
+ *keys() {
213
+ let index = 0;
214
+ for (const _ of this) {
215
+ yield index++;
216
+ }
217
+ }
189
218
  /**
190
219
  * Reduces all elements to a single accumulated value.
191
220
  *
@@ -318,6 +347,13 @@ var Heap = class _Heap extends IterableElementBase {
318
347
 
319
348
 
320
349
 
350
+
351
+
352
+
353
+
354
+
355
+
356
+
321
357
 
322
358
 
323
359
 
@@ -374,7 +410,7 @@ var Heap = class _Heap extends IterableElementBase {
374
410
  }
375
411
  /**
376
412
  * Insert an element.
377
- * @remarks Time O(1) amortized, Space O(1)
413
+ * @remarks Time O(log N) amortized, Space O(1)
378
414
  * @param element - Element to insert.
379
415
  * @returns True.
380
416
 
@@ -404,6 +440,13 @@ var Heap = class _Heap extends IterableElementBase {
404
440
 
405
441
 
406
442
 
443
+
444
+
445
+
446
+
447
+
448
+
449
+
407
450
 
408
451
 
409
452
 
@@ -461,6 +504,13 @@ var Heap = class _Heap extends IterableElementBase {
461
504
 
462
505
 
463
506
 
507
+
508
+
509
+
510
+
511
+
512
+
513
+
464
514
 
465
515
 
466
516
 
@@ -525,6 +575,40 @@ var Heap = class _Heap extends IterableElementBase {
525
575
 
526
576
 
527
577
 
578
+
579
+
580
+
581
+
582
+
583
+
584
+ * @example
585
+ * // Heap with custom comparator (MaxHeap behavior)
586
+ * interface Task {
587
+ * id: number;
588
+ * priority: number;
589
+ * name: string;
590
+ * }
591
+ *
592
+ * // Custom comparator for max heap behavior (higher priority first)
593
+ * const tasks: Task[] = [
594
+ * { id: 1, priority: 5, name: 'Email' },
595
+ * { id: 2, priority: 3, name: 'Chat' },
596
+ * { id: 3, priority: 8, name: 'Alert' }
597
+ * ];
598
+ *
599
+ * const maxHeap = new Heap(tasks, {
600
+ * comparator: (a: Task, b: Task) => b.priority - a.priority
601
+ * });
602
+ *
603
+ * console.log(maxHeap.size); // 3;
604
+ *
605
+ * // Peek returns highest priority task
606
+ * const topTask = maxHeap.peek();
607
+ * console.log(topTask?.priority); // 8;
608
+ * console.log(topTask?.name); // 'Alert';
609
+ */
610
+ /**
611
+ * @deprecated Use `pop` instead. Will be removed in a future major version.
528
612
 
529
613
 
530
614
 
@@ -555,6 +639,14 @@ var Heap = class _Heap extends IterableElementBase {
555
639
  * console.log(topTask?.name); // 'Alert';
556
640
  */
557
641
  poll() {
642
+ return this.pop();
643
+ }
644
+ /**
645
+ * Remove and return the top element (min or max depending on comparator).
646
+ * @remarks Time O(log N) amortized, Space O(1)
647
+ * @returns The removed top element, or undefined if empty.
648
+ */
649
+ pop() {
558
650
  if (this.elements.length === 0) return;
559
651
  const value = this.elements[0];
560
652
  const last = this.elements.pop();
@@ -595,6 +687,13 @@ var Heap = class _Heap extends IterableElementBase {
595
687
 
596
688
 
597
689
 
690
+
691
+
692
+
693
+
694
+
695
+
696
+
598
697
 
599
698
 
600
699
 
@@ -695,6 +794,13 @@ var Heap = class _Heap extends IterableElementBase {
695
794
 
696
795
 
697
796
 
797
+
798
+
799
+
800
+
801
+
802
+
803
+
698
804
 
699
805
 
700
806
 
@@ -742,6 +848,13 @@ var Heap = class _Heap extends IterableElementBase {
742
848
 
743
849
 
744
850
 
851
+
852
+
853
+
854
+
855
+
856
+
857
+
745
858
 
746
859
 
747
860
 
@@ -759,16 +872,6 @@ var Heap = class _Heap extends IterableElementBase {
759
872
  clear() {
760
873
  this._elements = [];
761
874
  }
762
- /**
763
- * Replace the backing array and rebuild the heap.
764
- * @remarks Time O(N), Space O(N)
765
- * @param elements - Iterable used to refill the heap.
766
- * @returns Array of per-node results from fixing steps.
767
- */
768
- refill(elements) {
769
- this._elements = Array.from(elements);
770
- return this.fix();
771
- }
772
875
  /**
773
876
  * Check if an equal element exists in the heap.
774
877
  * @remarks Time O(N), Space O(1)
@@ -792,6 +895,13 @@ var Heap = class _Heap extends IterableElementBase {
792
895
 
793
896
 
794
897
 
898
+
899
+
900
+
901
+
902
+
903
+
904
+
795
905
 
796
906
 
797
907
 
@@ -839,6 +949,13 @@ var Heap = class _Heap extends IterableElementBase {
839
949
 
840
950
 
841
951
 
952
+
953
+
954
+
955
+
956
+
957
+
958
+
842
959
 
843
960
 
844
961
 
@@ -863,7 +980,7 @@ var Heap = class _Heap extends IterableElementBase {
863
980
  }
864
981
  if (index < 0) return false;
865
982
  if (index === 0) {
866
- this.poll();
983
+ this.pop();
867
984
  } else if (index === this.elements.length - 1) {
868
985
  this.elements.pop();
869
986
  } else {
@@ -873,13 +990,19 @@ var Heap = class _Heap extends IterableElementBase {
873
990
  }
874
991
  return true;
875
992
  }
993
+ /**
994
+ * @deprecated Use `deleteWhere` instead. Will be removed in a future major version.
995
+ */
996
+ deleteBy(predicate) {
997
+ return this.deleteWhere(predicate);
998
+ }
876
999
  /**
877
1000
  * Delete the first element that matches a predicate.
878
1001
  * @remarks Time O(N), Space O(1)
879
1002
  * @param predicate - Function (element, index, heap) → boolean.
880
1003
  * @returns True if an element was removed.
881
1004
  */
882
- deleteBy(predicate) {
1005
+ deleteWhere(predicate) {
883
1006
  let idx = -1;
884
1007
  for (let i = 0; i < this.elements.length; i++) {
885
1008
  if (predicate(this.elements[i], i, this)) {
@@ -889,7 +1012,7 @@ var Heap = class _Heap extends IterableElementBase {
889
1012
  }
890
1013
  if (idx < 0) return false;
891
1014
  if (idx === 0) {
892
- this.poll();
1015
+ this.pop();
893
1016
  } else if (idx === this.elements.length - 1) {
894
1017
  this.elements.pop();
895
1018
  } else {
@@ -932,6 +1055,13 @@ var Heap = class _Heap extends IterableElementBase {
932
1055
 
933
1056
 
934
1057
 
1058
+
1059
+
1060
+
1061
+
1062
+
1063
+
1064
+
935
1065
 
936
1066
 
937
1067
 
@@ -1012,6 +1142,13 @@ var Heap = class _Heap extends IterableElementBase {
1012
1142
 
1013
1143
 
1014
1144
 
1145
+
1146
+
1147
+
1148
+
1149
+
1150
+
1151
+
1015
1152
 
1016
1153
 
1017
1154
 
@@ -1065,6 +1202,13 @@ var Heap = class _Heap extends IterableElementBase {
1065
1202
 
1066
1203
 
1067
1204
 
1205
+
1206
+
1207
+
1208
+
1209
+
1210
+
1211
+
1068
1212
 
1069
1213
 
1070
1214
 
@@ -1117,6 +1261,13 @@ var Heap = class _Heap extends IterableElementBase {
1117
1261
 
1118
1262
 
1119
1263
 
1264
+
1265
+
1266
+
1267
+
1268
+
1269
+
1270
+
1120
1271
 
1121
1272
 
1122
1273
 
@@ -1176,6 +1327,13 @@ var Heap = class _Heap extends IterableElementBase {
1176
1327
 
1177
1328
 
1178
1329
 
1330
+
1331
+
1332
+
1333
+
1334
+
1335
+
1336
+
1179
1337
 
1180
1338
 
1181
1339
 
@@ -1372,7 +1530,7 @@ var FibonacciHeap = class {
1372
1530
  * Push an element into the root list.
1373
1531
  * @remarks Time O(1) amortized, Space O(1)
1374
1532
  * @param element - Element to insert.
1375
- * @returns This heap.
1533
+ * @returns True when the element is added.
1376
1534
  */
1377
1535
  push(element) {
1378
1536
  const node = this.createNode(element);
@@ -1381,7 +1539,7 @@ var FibonacciHeap = class {
1381
1539
  this.mergeWithRoot(node);
1382
1540
  if (!this.min || this.comparator(node.element, this.min.element) <= 0) this._min = node;
1383
1541
  this._size++;
1384
- return this;
1542
+ return true;
1385
1543
  }
1386
1544
  peek() {
1387
1545
  return this.min ? this.min.element : void 0;