data-structure-typed 2.5.2 → 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 (156) hide show
  1. package/CHANGELOG.md +3 -1
  2. package/MIGRATION.md +169 -0
  3. package/README.md +60 -6
  4. package/README_CN.md +551 -143
  5. package/SPECIFICATION.md +20 -14
  6. package/SPECIFICATION.zh-CN.md +20 -14
  7. package/dist/cjs/binary-tree.cjs +2417 -132
  8. package/dist/cjs/graph.cjs +248 -14
  9. package/dist/cjs/hash.cjs +62 -7
  10. package/dist/cjs/heap.cjs +103 -16
  11. package/dist/cjs/index.cjs +3046 -124
  12. package/dist/cjs/linked-list.cjs +219 -0
  13. package/dist/cjs/matrix.cjs +32 -0
  14. package/dist/cjs/priority-queue.cjs +101 -14
  15. package/dist/cjs/queue.cjs +215 -0
  16. package/dist/cjs/stack.cjs +44 -4
  17. package/dist/cjs/trie.cjs +44 -0
  18. package/dist/cjs-legacy/binary-tree.cjs +2406 -123
  19. package/dist/cjs-legacy/graph.cjs +248 -14
  20. package/dist/cjs-legacy/hash.cjs +62 -7
  21. package/dist/cjs-legacy/heap.cjs +103 -16
  22. package/dist/cjs-legacy/index.cjs +3105 -185
  23. package/dist/cjs-legacy/linked-list.cjs +219 -0
  24. package/dist/cjs-legacy/matrix.cjs +32 -0
  25. package/dist/cjs-legacy/priority-queue.cjs +101 -14
  26. package/dist/cjs-legacy/queue.cjs +215 -0
  27. package/dist/cjs-legacy/stack.cjs +44 -4
  28. package/dist/cjs-legacy/trie.cjs +44 -0
  29. package/dist/esm/binary-tree.mjs +2417 -132
  30. package/dist/esm/graph.mjs +248 -14
  31. package/dist/esm/hash.mjs +62 -7
  32. package/dist/esm/heap.mjs +103 -16
  33. package/dist/esm/index.mjs +3046 -124
  34. package/dist/esm/linked-list.mjs +219 -0
  35. package/dist/esm/matrix.mjs +32 -0
  36. package/dist/esm/priority-queue.mjs +101 -14
  37. package/dist/esm/queue.mjs +215 -0
  38. package/dist/esm/stack.mjs +44 -4
  39. package/dist/esm/trie.mjs +44 -0
  40. package/dist/esm-legacy/binary-tree.mjs +2406 -123
  41. package/dist/esm-legacy/graph.mjs +248 -14
  42. package/dist/esm-legacy/hash.mjs +62 -7
  43. package/dist/esm-legacy/heap.mjs +103 -16
  44. package/dist/esm-legacy/index.mjs +3105 -185
  45. package/dist/esm-legacy/linked-list.mjs +219 -0
  46. package/dist/esm-legacy/matrix.mjs +32 -0
  47. package/dist/esm-legacy/priority-queue.mjs +101 -14
  48. package/dist/esm-legacy/queue.mjs +215 -0
  49. package/dist/esm-legacy/stack.mjs +44 -4
  50. package/dist/esm-legacy/trie.mjs +44 -0
  51. package/dist/types/data-structures/binary-tree/avl-tree.d.ts +50 -2
  52. package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +56 -0
  53. package/dist/types/data-structures/binary-tree/binary-tree.d.ts +116 -15
  54. package/dist/types/data-structures/binary-tree/bst.d.ts +99 -3
  55. package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +79 -8
  56. package/dist/types/data-structures/binary-tree/segment-tree.d.ts +24 -0
  57. package/dist/types/data-structures/binary-tree/tree-map.d.ts +520 -1
  58. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +489 -1
  59. package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +393 -1
  60. package/dist/types/data-structures/binary-tree/tree-set.d.ts +500 -1
  61. package/dist/types/data-structures/graph/directed-graph.d.ts +40 -0
  62. package/dist/types/data-structures/graph/undirected-graph.d.ts +36 -0
  63. package/dist/types/data-structures/hash/hash-map.d.ts +51 -6
  64. package/dist/types/data-structures/heap/heap.d.ts +98 -12
  65. package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +75 -0
  66. package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +61 -1
  67. package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +72 -0
  68. package/dist/types/data-structures/matrix/matrix.d.ts +32 -0
  69. package/dist/types/data-structures/queue/deque.d.ts +82 -0
  70. package/dist/types/data-structures/queue/queue.d.ts +61 -0
  71. package/dist/types/data-structures/stack/stack.d.ts +42 -2
  72. package/dist/types/data-structures/trie/trie.d.ts +48 -0
  73. package/dist/types/interfaces/binary-tree.d.ts +2 -3
  74. package/dist/umd/data-structure-typed.js +3105 -185
  75. package/dist/umd/data-structure-typed.min.js +4 -4
  76. package/docs-site-docusaurus/docs/api/classes/AVLTree.md +188 -200
  77. package/docs-site-docusaurus/docs/api/classes/AVLTreeNode.md +11 -11
  78. package/docs-site-docusaurus/docs/api/classes/AbstractGraph.md +62 -62
  79. package/docs-site-docusaurus/docs/api/classes/BST.md +183 -195
  80. package/docs-site-docusaurus/docs/api/classes/BSTNode.md +13 -13
  81. package/docs-site-docusaurus/docs/api/classes/BinaryIndexedTree.md +15 -15
  82. package/docs-site-docusaurus/docs/api/classes/BinaryTree.md +143 -155
  83. package/docs-site-docusaurus/docs/api/classes/BinaryTreeNode.md +13 -13
  84. package/docs-site-docusaurus/docs/api/classes/Deque.md +99 -85
  85. package/docs-site-docusaurus/docs/api/classes/DirectedGraph.md +73 -73
  86. package/docs-site-docusaurus/docs/api/classes/DoublyLinkedList.md +100 -70
  87. package/docs-site-docusaurus/docs/api/classes/DoublyLinkedListNode.md +8 -8
  88. package/docs-site-docusaurus/docs/api/classes/FibonacciHeap.md +12 -12
  89. package/docs-site-docusaurus/docs/api/classes/FibonacciHeapNode.md +1 -1
  90. package/docs-site-docusaurus/docs/api/classes/HashMap.md +38 -38
  91. package/docs-site-docusaurus/docs/api/classes/Heap.md +96 -85
  92. package/docs-site-docusaurus/docs/api/classes/IterableElementBase.md +25 -25
  93. package/docs-site-docusaurus/docs/api/classes/IterableEntryBase.md +23 -23
  94. package/docs-site-docusaurus/docs/api/classes/LinearBase.md +48 -48
  95. package/docs-site-docusaurus/docs/api/classes/LinearLinkedBase.md +52 -52
  96. package/docs-site-docusaurus/docs/api/classes/LinkedHashMap.md +42 -42
  97. package/docs-site-docusaurus/docs/api/classes/LinkedListNode.md +6 -6
  98. package/docs-site-docusaurus/docs/api/classes/LinkedListQueue.md +74 -74
  99. package/docs-site-docusaurus/docs/api/classes/MapGraph.md +73 -73
  100. package/docs-site-docusaurus/docs/api/classes/Matrix.md +31 -31
  101. package/docs-site-docusaurus/docs/api/classes/MaxHeap.md +104 -89
  102. package/docs-site-docusaurus/docs/api/classes/MaxPriorityQueue.md +104 -89
  103. package/docs-site-docusaurus/docs/api/classes/MinHeap.md +104 -89
  104. package/docs-site-docusaurus/docs/api/classes/MinPriorityQueue.md +104 -89
  105. package/docs-site-docusaurus/docs/api/classes/Navigator.md +5 -5
  106. package/docs-site-docusaurus/docs/api/classes/PriorityQueue.md +103 -88
  107. package/docs-site-docusaurus/docs/api/classes/Queue.md +111 -59
  108. package/docs-site-docusaurus/docs/api/classes/RedBlackTree.md +200 -212
  109. package/docs-site-docusaurus/docs/api/classes/SegmentTree.md +10 -10
  110. package/docs-site-docusaurus/docs/api/classes/SinglyLinkedList.md +75 -75
  111. package/docs-site-docusaurus/docs/api/classes/SinglyLinkedListNode.md +6 -6
  112. package/docs-site-docusaurus/docs/api/classes/SkipList.md +37 -37
  113. package/docs-site-docusaurus/docs/api/classes/Stack.md +42 -42
  114. package/docs-site-docusaurus/docs/api/classes/TreeMap.md +107 -36
  115. package/docs-site-docusaurus/docs/api/classes/TreeMultiMap.md +43 -43
  116. package/docs-site-docusaurus/docs/api/classes/TreeSet.md +106 -35
  117. package/docs-site-docusaurus/docs/api/classes/Trie.md +43 -43
  118. package/docs-site-docusaurus/docs/api/classes/TrieNode.md +8 -8
  119. package/docs-site-docusaurus/docs/api/classes/UndirectedGraph.md +72 -72
  120. package/docs-site-docusaurus/docs/guide/architecture.md +75 -7
  121. package/docs-site-docusaurus/docs/guide/concepts.md +53 -34
  122. package/docs-site-docusaurus/docs/guide/faq.md +53 -0
  123. package/docs-site-docusaurus/docs/guide/guides.md +8 -9
  124. package/docs-site-docusaurus/docs/guide/integrations.md +74 -177
  125. package/docs-site-docusaurus/docs/guide/overview.md +131 -17
  126. package/docs-site-docusaurus/src/pages/index.tsx +4 -0
  127. package/docs-site-docusaurus/typedoc.json +1 -0
  128. package/package.json +7 -6
  129. package/src/data-structures/binary-tree/avl-tree.ts +52 -5
  130. package/src/data-structures/binary-tree/binary-indexed-tree.ts +56 -0
  131. package/src/data-structures/binary-tree/binary-tree.ts +167 -81
  132. package/src/data-structures/binary-tree/bst.ts +101 -7
  133. package/src/data-structures/binary-tree/red-black-tree.ts +82 -15
  134. package/src/data-structures/binary-tree/segment-tree.ts +24 -0
  135. package/src/data-structures/binary-tree/tree-map.ts +540 -3
  136. package/src/data-structures/binary-tree/tree-multi-map.ts +490 -2
  137. package/src/data-structures/binary-tree/tree-multi-set.ts +393 -1
  138. package/src/data-structures/binary-tree/tree-set.ts +520 -3
  139. package/src/data-structures/graph/directed-graph.ts +41 -1
  140. package/src/data-structures/graph/undirected-graph.ts +37 -1
  141. package/src/data-structures/hash/hash-map.ts +67 -12
  142. package/src/data-structures/heap/heap.ts +107 -19
  143. package/src/data-structures/linked-list/doubly-linked-list.ts +88 -0
  144. package/src/data-structures/linked-list/singly-linked-list.ts +61 -1
  145. package/src/data-structures/linked-list/skip-linked-list.ts +72 -0
  146. package/src/data-structures/matrix/matrix.ts +32 -0
  147. package/src/data-structures/queue/deque.ts +85 -0
  148. package/src/data-structures/queue/queue.ts +73 -0
  149. package/src/data-structures/stack/stack.ts +45 -5
  150. package/src/data-structures/trie/trie.ts +48 -0
  151. package/src/interfaces/binary-tree.ts +1 -9
  152. package/.vitepress/cache/deps_temp_51f5f1b0/chunk-7OIKW5WK.js +0 -12984
  153. package/.vitepress/cache/deps_temp_51f5f1b0/package.json +0 -3
  154. package/.vitepress/cache/deps_temp_51f5f1b0/vitepress___@vue_devtools-api.js +0 -4505
  155. package/.vitepress/cache/deps_temp_51f5f1b0/vitepress___@vueuse_core.js +0 -9731
  156. package/.vitepress/cache/deps_temp_51f5f1b0/vue.js +0 -347
package/dist/cjs/hash.cjs CHANGED
@@ -325,6 +325,10 @@ var HashMap = class extends IterableEntryBase {
325
325
 
326
326
 
327
327
 
328
+
329
+
330
+
331
+
328
332
 
329
333
 
330
334
 
@@ -370,6 +374,10 @@ var HashMap = class extends IterableEntryBase {
370
374
 
371
375
 
372
376
 
377
+
378
+
379
+
380
+
373
381
 
374
382
 
375
383
 
@@ -461,6 +469,14 @@ var HashMap = class extends IterableEntryBase {
461
469
 
462
470
 
463
471
 
472
+
473
+
474
+
475
+
476
+
477
+
478
+
479
+
464
480
 
465
481
 
466
482
 
@@ -498,7 +514,7 @@ var HashMap = class extends IterableEntryBase {
498
514
  if (this.store[strKey] === void 0) this._size++;
499
515
  this._store[strKey] = { key, value };
500
516
  }
501
- return true;
517
+ return this;
502
518
  }
503
519
  /**
504
520
  * Insert many entries from an iterable.
@@ -533,6 +549,10 @@ var HashMap = class extends IterableEntryBase {
533
549
 
534
550
 
535
551
 
552
+
553
+
554
+
555
+
536
556
 
537
557
 
538
558
 
@@ -550,7 +570,11 @@ var HashMap = class extends IterableEntryBase {
550
570
  let key, value;
551
571
  if (this.isEntry(rawEle)) [key, value] = rawEle;
552
572
  else if (this._toEntryFn) [key, value] = this._toEntryFn(rawEle);
553
- if (key !== void 0 && value !== void 0) results.push(this.set(key, value));
573
+ if (key !== void 0 && value !== void 0) {
574
+ const sizeBefore = this._size;
575
+ this.set(key, value);
576
+ results.push(sizeBefore < this._size);
577
+ }
554
578
  }
555
579
  return results;
556
580
  }
@@ -589,6 +613,10 @@ var HashMap = class extends IterableEntryBase {
589
613
 
590
614
 
591
615
 
616
+
617
+
618
+
619
+
592
620
 
593
621
 
594
622
 
@@ -656,6 +684,10 @@ var HashMap = class extends IterableEntryBase {
656
684
 
657
685
 
658
686
 
687
+
688
+
689
+
690
+
659
691
 
660
692
 
661
693
 
@@ -708,6 +740,10 @@ var HashMap = class extends IterableEntryBase {
708
740
 
709
741
 
710
742
 
743
+
744
+
745
+
746
+
711
747
 
712
748
 
713
749
 
@@ -778,6 +814,10 @@ var HashMap = class extends IterableEntryBase {
778
814
 
779
815
 
780
816
 
817
+
818
+
819
+
820
+
781
821
 
782
822
 
783
823
 
@@ -831,6 +871,10 @@ var HashMap = class extends IterableEntryBase {
831
871
 
832
872
 
833
873
 
874
+
875
+
876
+
877
+
834
878
 
835
879
 
836
880
 
@@ -886,6 +930,10 @@ var HashMap = class extends IterableEntryBase {
886
930
 
887
931
 
888
932
 
933
+
934
+
935
+
936
+
889
937
 
890
938
 
891
939
 
@@ -1096,7 +1144,7 @@ var LinkedHashMap = class extends IterableEntryBase {
1096
1144
  * @remarks Time O(1), Space O(1)
1097
1145
  * @param key - Key.
1098
1146
  * @param [value] - Value.
1099
- * @returns True when the operation succeeds.
1147
+ * @returns This map (for chaining).
1100
1148
  */
1101
1149
  set(key, value) {
1102
1150
  let node;
@@ -1131,7 +1179,7 @@ var LinkedHashMap = class extends IterableEntryBase {
1131
1179
  this._sentinel.prev = node;
1132
1180
  this._size++;
1133
1181
  }
1134
- return true;
1182
+ return this;
1135
1183
  }
1136
1184
  setMany(entryOrRawElements) {
1137
1185
  const results = [];
@@ -1139,7 +1187,11 @@ var LinkedHashMap = class extends IterableEntryBase {
1139
1187
  let key, value;
1140
1188
  if (this.isEntry(rawEle)) [key, value] = rawEle;
1141
1189
  else if (this._toEntryFn) [key, value] = this._toEntryFn(rawEle);
1142
- if (key !== void 0 && value !== void 0) results.push(this.set(key, value));
1190
+ if (key !== void 0 && value !== void 0) {
1191
+ const sizeBefore = this._size;
1192
+ this.set(key, value);
1193
+ results.push(sizeBefore < this._size);
1194
+ }
1143
1195
  }
1144
1196
  return results;
1145
1197
  }
@@ -1217,13 +1269,16 @@ var LinkedHashMap = class extends IterableEntryBase {
1217
1269
  * Delete the entry at a given index.
1218
1270
  * @remarks Time O(N), Space O(1)
1219
1271
  * @param index - Zero-based index.
1220
- * @returns True if removed.
1272
+ * @returns The removed entry [key, value].
1273
+ * @throws {RangeError} If index is out of bounds.
1221
1274
  */
1222
1275
  deleteAt(index) {
1223
1276
  rangeCheck(index, 0, this._size - 1);
1224
1277
  let node = this.head;
1225
1278
  while (index--) node = node.next;
1226
- return this._deleteNode(node);
1279
+ const entry = [node.key, node.value];
1280
+ this._deleteNode(node);
1281
+ return entry;
1227
1282
  }
1228
1283
  isEmpty() {
1229
1284
  return this._size === 0;
package/dist/cjs/heap.cjs CHANGED
@@ -321,6 +321,10 @@ var Heap = class _Heap extends IterableElementBase {
321
321
 
322
322
 
323
323
 
324
+
325
+
326
+
327
+
324
328
 
325
329
 
326
330
 
@@ -374,7 +378,7 @@ var Heap = class _Heap extends IterableElementBase {
374
378
  }
375
379
  /**
376
380
  * Insert an element.
377
- * @remarks Time O(1) amortized, Space O(1)
381
+ * @remarks Time O(log N) amortized, Space O(1)
378
382
  * @param element - Element to insert.
379
383
  * @returns True.
380
384
 
@@ -407,6 +411,10 @@ var Heap = class _Heap extends IterableElementBase {
407
411
 
408
412
 
409
413
 
414
+
415
+
416
+
417
+
410
418
 
411
419
 
412
420
 
@@ -464,6 +472,10 @@ var Heap = class _Heap extends IterableElementBase {
464
472
 
465
473
 
466
474
 
475
+
476
+
477
+
478
+
467
479
 
468
480
 
469
481
 
@@ -524,10 +536,41 @@ var Heap = class _Heap extends IterableElementBase {
524
536
 
525
537
 
526
538
 
539
+
540
+
541
+
527
542
 
528
543
 
529
544
 
530
545
 
546
+ * @example
547
+ * // Heap with custom comparator (MaxHeap behavior)
548
+ * interface Task {
549
+ * id: number;
550
+ * priority: number;
551
+ * name: string;
552
+ * }
553
+ *
554
+ * // Custom comparator for max heap behavior (higher priority first)
555
+ * const tasks: Task[] = [
556
+ * { id: 1, priority: 5, name: 'Email' },
557
+ * { id: 2, priority: 3, name: 'Chat' },
558
+ * { id: 3, priority: 8, name: 'Alert' }
559
+ * ];
560
+ *
561
+ * const maxHeap = new Heap(tasks, {
562
+ * comparator: (a: Task, b: Task) => b.priority - a.priority
563
+ * });
564
+ *
565
+ * console.log(maxHeap.size); // 3;
566
+ *
567
+ * // Peek returns highest priority task
568
+ * const topTask = maxHeap.peek();
569
+ * console.log(topTask?.priority); // 8;
570
+ * console.log(topTask?.name); // 'Alert';
571
+ */
572
+ /**
573
+ * @deprecated Use `pop` instead. Will be removed in a future major version.
531
574
  * @example
532
575
  * // Heap with custom comparator (MaxHeap behavior)
533
576
  * interface Task {
@@ -555,6 +598,14 @@ var Heap = class _Heap extends IterableElementBase {
555
598
  * console.log(topTask?.name); // 'Alert';
556
599
  */
557
600
  poll() {
601
+ return this.pop();
602
+ }
603
+ /**
604
+ * Remove and return the top element (min or max depending on comparator).
605
+ * @remarks Time O(log N) amortized, Space O(1)
606
+ * @returns The removed top element, or undefined if empty.
607
+ */
608
+ pop() {
558
609
  if (this.elements.length === 0) return;
559
610
  const value = this.elements[0];
560
611
  const last = this.elements.pop();
@@ -598,6 +649,10 @@ var Heap = class _Heap extends IterableElementBase {
598
649
 
599
650
 
600
651
 
652
+
653
+
654
+
655
+
601
656
 
602
657
 
603
658
 
@@ -698,6 +753,10 @@ var Heap = class _Heap extends IterableElementBase {
698
753
 
699
754
 
700
755
 
756
+
757
+
758
+
759
+
701
760
 
702
761
 
703
762
 
@@ -745,6 +804,10 @@ var Heap = class _Heap extends IterableElementBase {
745
804
 
746
805
 
747
806
 
807
+
808
+
809
+
810
+
748
811
 
749
812
 
750
813
 
@@ -759,16 +822,6 @@ var Heap = class _Heap extends IterableElementBase {
759
822
  clear() {
760
823
  this._elements = [];
761
824
  }
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
825
  /**
773
826
  * Check if an equal element exists in the heap.
774
827
  * @remarks Time O(N), Space O(1)
@@ -795,6 +848,10 @@ var Heap = class _Heap extends IterableElementBase {
795
848
 
796
849
 
797
850
 
851
+
852
+
853
+
854
+
798
855
 
799
856
 
800
857
 
@@ -842,6 +899,10 @@ var Heap = class _Heap extends IterableElementBase {
842
899
 
843
900
 
844
901
 
902
+
903
+
904
+
905
+
845
906
 
846
907
 
847
908
 
@@ -863,7 +924,7 @@ var Heap = class _Heap extends IterableElementBase {
863
924
  }
864
925
  if (index < 0) return false;
865
926
  if (index === 0) {
866
- this.poll();
927
+ this.pop();
867
928
  } else if (index === this.elements.length - 1) {
868
929
  this.elements.pop();
869
930
  } else {
@@ -873,13 +934,19 @@ var Heap = class _Heap extends IterableElementBase {
873
934
  }
874
935
  return true;
875
936
  }
937
+ /**
938
+ * @deprecated Use `deleteWhere` instead. Will be removed in a future major version.
939
+ */
940
+ deleteBy(predicate) {
941
+ return this.deleteWhere(predicate);
942
+ }
876
943
  /**
877
944
  * Delete the first element that matches a predicate.
878
945
  * @remarks Time O(N), Space O(1)
879
946
  * @param predicate - Function (element, index, heap) → boolean.
880
947
  * @returns True if an element was removed.
881
948
  */
882
- deleteBy(predicate) {
949
+ deleteWhere(predicate) {
883
950
  let idx = -1;
884
951
  for (let i = 0; i < this.elements.length; i++) {
885
952
  if (predicate(this.elements[i], i, this)) {
@@ -889,7 +956,7 @@ var Heap = class _Heap extends IterableElementBase {
889
956
  }
890
957
  if (idx < 0) return false;
891
958
  if (idx === 0) {
892
- this.poll();
959
+ this.pop();
893
960
  } else if (idx === this.elements.length - 1) {
894
961
  this.elements.pop();
895
962
  } else {
@@ -935,6 +1002,10 @@ var Heap = class _Heap extends IterableElementBase {
935
1002
 
936
1003
 
937
1004
 
1005
+
1006
+
1007
+
1008
+
938
1009
 
939
1010
 
940
1011
 
@@ -1015,6 +1086,10 @@ var Heap = class _Heap extends IterableElementBase {
1015
1086
 
1016
1087
 
1017
1088
 
1089
+
1090
+
1091
+
1092
+
1018
1093
 
1019
1094
 
1020
1095
 
@@ -1068,6 +1143,10 @@ var Heap = class _Heap extends IterableElementBase {
1068
1143
 
1069
1144
 
1070
1145
 
1146
+
1147
+
1148
+
1149
+
1071
1150
 
1072
1151
 
1073
1152
 
@@ -1120,6 +1199,10 @@ var Heap = class _Heap extends IterableElementBase {
1120
1199
 
1121
1200
 
1122
1201
 
1202
+
1203
+
1204
+
1205
+
1123
1206
 
1124
1207
 
1125
1208
 
@@ -1179,6 +1262,10 @@ var Heap = class _Heap extends IterableElementBase {
1179
1262
 
1180
1263
 
1181
1264
 
1265
+
1266
+
1267
+
1268
+
1182
1269
 
1183
1270
 
1184
1271
 
@@ -1372,7 +1459,7 @@ var FibonacciHeap = class {
1372
1459
  * Push an element into the root list.
1373
1460
  * @remarks Time O(1) amortized, Space O(1)
1374
1461
  * @param element - Element to insert.
1375
- * @returns This heap.
1462
+ * @returns True when the element is added.
1376
1463
  */
1377
1464
  push(element) {
1378
1465
  const node = this.createNode(element);
@@ -1381,7 +1468,7 @@ var FibonacciHeap = class {
1381
1468
  this.mergeWithRoot(node);
1382
1469
  if (!this.min || this.comparator(node.element, this.min.element) <= 0) this._min = node;
1383
1470
  this._size++;
1384
- return this;
1471
+ return true;
1385
1472
  }
1386
1473
  peek() {
1387
1474
  return this.min ? this.min.element : void 0;