data-structure-typed 1.51.8 → 1.52.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.
- package/CHANGELOG.md +1 -1
- package/README.md +13 -13
- package/benchmark/report.html +13 -13
- package/benchmark/report.json +152 -152
- package/dist/cjs/data-structures/base/index.d.ts +2 -1
- package/dist/cjs/data-structures/base/index.js +2 -1
- package/dist/cjs/data-structures/base/index.js.map +1 -1
- package/dist/cjs/data-structures/base/iterable-element-base.d.ts +171 -0
- package/dist/cjs/data-structures/base/iterable-element-base.js +226 -0
- package/dist/cjs/data-structures/base/iterable-element-base.js.map +1 -0
- package/dist/cjs/data-structures/base/{iterable-base.d.ts → iterable-entry-base.d.ts} +4 -147
- package/dist/cjs/data-structures/base/{iterable-base.js → iterable-entry-base.js} +13 -190
- package/dist/cjs/data-structures/base/iterable-entry-base.js.map +1 -0
- package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.d.ts +106 -68
- package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.js +119 -87
- package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/avl-tree.d.ts +82 -62
- package/dist/cjs/data-structures/binary-tree/avl-tree.js +78 -59
- package/dist/cjs/data-structures/binary-tree/avl-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/binary-tree.d.ts +318 -226
- package/dist/cjs/data-structures/binary-tree/binary-tree.js +475 -363
- package/dist/cjs/data-structures/binary-tree/binary-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/bst.d.ts +192 -202
- package/dist/cjs/data-structures/binary-tree/bst.js +207 -249
- package/dist/cjs/data-structures/binary-tree/bst.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/rb-tree.d.ts +73 -74
- package/dist/cjs/data-structures/binary-tree/rb-tree.js +107 -98
- package/dist/cjs/data-structures/binary-tree/rb-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/tree-multi-map.d.ts +92 -75
- package/dist/cjs/data-structures/binary-tree/tree-multi-map.js +105 -93
- package/dist/cjs/data-structures/binary-tree/tree-multi-map.js.map +1 -1
- package/dist/cjs/data-structures/graph/abstract-graph.d.ts +10 -15
- package/dist/cjs/data-structures/graph/abstract-graph.js +10 -15
- package/dist/cjs/data-structures/graph/abstract-graph.js.map +1 -1
- package/dist/cjs/data-structures/hash/hash-map.d.ts +33 -40
- package/dist/cjs/data-structures/hash/hash-map.js +40 -55
- package/dist/cjs/data-structures/hash/hash-map.js.map +1 -1
- package/dist/cjs/data-structures/heap/heap.d.ts +43 -114
- package/dist/cjs/data-structures/heap/heap.js +59 -127
- package/dist/cjs/data-structures/heap/heap.js.map +1 -1
- package/dist/cjs/data-structures/heap/max-heap.d.ts +50 -4
- package/dist/cjs/data-structures/heap/max-heap.js +76 -10
- package/dist/cjs/data-structures/heap/max-heap.js.map +1 -1
- package/dist/cjs/data-structures/heap/min-heap.d.ts +51 -5
- package/dist/cjs/data-structures/heap/min-heap.js +68 -11
- package/dist/cjs/data-structures/heap/min-heap.js.map +1 -1
- package/dist/cjs/data-structures/linked-list/doubly-linked-list.d.ts +22 -28
- package/dist/cjs/data-structures/linked-list/doubly-linked-list.js +26 -28
- package/dist/cjs/data-structures/linked-list/doubly-linked-list.js.map +1 -1
- package/dist/cjs/data-structures/linked-list/singly-linked-list.d.ts +22 -25
- package/dist/cjs/data-structures/linked-list/singly-linked-list.js +29 -26
- package/dist/cjs/data-structures/linked-list/singly-linked-list.js.map +1 -1
- package/dist/cjs/data-structures/priority-queue/max-priority-queue.d.ts +50 -4
- package/dist/cjs/data-structures/priority-queue/max-priority-queue.js +79 -10
- package/dist/cjs/data-structures/priority-queue/max-priority-queue.js.map +1 -1
- package/dist/cjs/data-structures/priority-queue/min-priority-queue.d.ts +51 -5
- package/dist/cjs/data-structures/priority-queue/min-priority-queue.js +71 -11
- package/dist/cjs/data-structures/priority-queue/min-priority-queue.js.map +1 -1
- package/dist/cjs/data-structures/priority-queue/priority-queue.d.ts +50 -4
- package/dist/cjs/data-structures/priority-queue/priority-queue.js +70 -1
- package/dist/cjs/data-structures/priority-queue/priority-queue.js.map +1 -1
- package/dist/cjs/data-structures/queue/deque.d.ts +21 -20
- package/dist/cjs/data-structures/queue/deque.js +29 -23
- package/dist/cjs/data-structures/queue/deque.js.map +1 -1
- package/dist/cjs/data-structures/queue/queue.d.ts +8 -28
- package/dist/cjs/data-structures/queue/queue.js +15 -31
- package/dist/cjs/data-structures/queue/queue.js.map +1 -1
- package/dist/cjs/data-structures/stack/stack.d.ts +17 -22
- package/dist/cjs/data-structures/stack/stack.js +25 -24
- package/dist/cjs/data-structures/stack/stack.js.map +1 -1
- package/dist/cjs/data-structures/trie/trie.d.ts +19 -14
- package/dist/cjs/data-structures/trie/trie.js +27 -16
- package/dist/cjs/data-structures/trie/trie.js.map +1 -1
- package/dist/cjs/interfaces/binary-tree.d.ts +7 -7
- package/dist/cjs/types/common.d.ts +1 -2
- package/dist/cjs/types/data-structures/base/base.d.ts +5 -2
- package/dist/cjs/types/data-structures/binary-tree/avl-tree-multi-map.d.ts +3 -4
- package/dist/cjs/types/data-structures/binary-tree/avl-tree.d.ts +3 -4
- package/dist/cjs/types/data-structures/binary-tree/binary-tree.d.ts +5 -5
- package/dist/cjs/types/data-structures/binary-tree/bst.d.ts +4 -5
- package/dist/cjs/types/data-structures/binary-tree/rb-tree.d.ts +3 -4
- package/dist/cjs/types/data-structures/binary-tree/tree-multi-map.d.ts +3 -4
- package/dist/cjs/types/data-structures/heap/heap.d.ts +3 -2
- package/dist/cjs/types/data-structures/linked-list/doubly-linked-list.d.ts +2 -1
- package/dist/cjs/types/data-structures/linked-list/singly-linked-list.d.ts +2 -1
- package/dist/cjs/types/data-structures/priority-queue/priority-queue.d.ts +1 -1
- package/dist/cjs/types/data-structures/queue/deque.d.ts +3 -2
- package/dist/cjs/types/data-structures/queue/queue.d.ts +2 -1
- package/dist/cjs/types/data-structures/stack/stack.d.ts +2 -1
- package/dist/cjs/types/data-structures/trie/trie.d.ts +3 -2
- package/dist/cjs/utils/utils.js +3 -5
- package/dist/cjs/utils/utils.js.map +1 -1
- package/dist/mjs/data-structures/base/index.d.ts +2 -1
- package/dist/mjs/data-structures/base/index.js +2 -1
- package/dist/mjs/data-structures/base/iterable-element-base.d.ts +171 -0
- package/dist/mjs/data-structures/base/iterable-element-base.js +222 -0
- package/dist/mjs/data-structures/base/{iterable-base.d.ts → iterable-entry-base.d.ts} +4 -147
- package/dist/mjs/data-structures/base/{iterable-base.js → iterable-entry-base.js} +10 -186
- package/dist/mjs/data-structures/binary-tree/avl-tree-multi-map.d.ts +106 -68
- package/dist/mjs/data-structures/binary-tree/avl-tree-multi-map.js +119 -87
- package/dist/mjs/data-structures/binary-tree/avl-tree.d.ts +82 -62
- package/dist/mjs/data-structures/binary-tree/avl-tree.js +78 -59
- package/dist/mjs/data-structures/binary-tree/binary-tree.d.ts +318 -226
- package/dist/mjs/data-structures/binary-tree/binary-tree.js +476 -364
- package/dist/mjs/data-structures/binary-tree/bst.d.ts +192 -202
- package/dist/mjs/data-structures/binary-tree/bst.js +211 -255
- package/dist/mjs/data-structures/binary-tree/rb-tree.d.ts +73 -74
- package/dist/mjs/data-structures/binary-tree/rb-tree.js +107 -98
- package/dist/mjs/data-structures/binary-tree/tree-multi-map.d.ts +92 -75
- package/dist/mjs/data-structures/binary-tree/tree-multi-map.js +105 -93
- package/dist/mjs/data-structures/graph/abstract-graph.d.ts +10 -15
- package/dist/mjs/data-structures/graph/abstract-graph.js +10 -15
- package/dist/mjs/data-structures/hash/hash-map.d.ts +33 -40
- package/dist/mjs/data-structures/hash/hash-map.js +41 -55
- package/dist/mjs/data-structures/heap/heap.d.ts +43 -114
- package/dist/mjs/data-structures/heap/heap.js +60 -128
- package/dist/mjs/data-structures/heap/max-heap.d.ts +50 -4
- package/dist/mjs/data-structures/heap/max-heap.js +79 -10
- package/dist/mjs/data-structures/heap/min-heap.d.ts +51 -5
- package/dist/mjs/data-structures/heap/min-heap.js +68 -11
- package/dist/mjs/data-structures/linked-list/doubly-linked-list.d.ts +22 -28
- package/dist/mjs/data-structures/linked-list/doubly-linked-list.js +26 -28
- package/dist/mjs/data-structures/linked-list/singly-linked-list.d.ts +22 -25
- package/dist/mjs/data-structures/linked-list/singly-linked-list.js +29 -26
- package/dist/mjs/data-structures/priority-queue/max-priority-queue.d.ts +50 -4
- package/dist/mjs/data-structures/priority-queue/max-priority-queue.js +82 -10
- package/dist/mjs/data-structures/priority-queue/min-priority-queue.d.ts +51 -5
- package/dist/mjs/data-structures/priority-queue/min-priority-queue.js +71 -11
- package/dist/mjs/data-structures/priority-queue/priority-queue.d.ts +50 -4
- package/dist/mjs/data-structures/priority-queue/priority-queue.js +70 -1
- package/dist/mjs/data-structures/queue/deque.d.ts +21 -20
- package/dist/mjs/data-structures/queue/deque.js +29 -23
- package/dist/mjs/data-structures/queue/queue.d.ts +8 -28
- package/dist/mjs/data-structures/queue/queue.js +15 -31
- package/dist/mjs/data-structures/stack/stack.d.ts +17 -22
- package/dist/mjs/data-structures/stack/stack.js +25 -24
- package/dist/mjs/data-structures/trie/trie.d.ts +19 -14
- package/dist/mjs/data-structures/trie/trie.js +27 -16
- package/dist/mjs/interfaces/binary-tree.d.ts +7 -7
- package/dist/mjs/types/common.d.ts +1 -2
- package/dist/mjs/types/data-structures/base/base.d.ts +5 -2
- package/dist/mjs/types/data-structures/binary-tree/avl-tree-multi-map.d.ts +3 -4
- package/dist/mjs/types/data-structures/binary-tree/avl-tree.d.ts +3 -4
- package/dist/mjs/types/data-structures/binary-tree/binary-tree.d.ts +5 -5
- package/dist/mjs/types/data-structures/binary-tree/bst.d.ts +4 -5
- package/dist/mjs/types/data-structures/binary-tree/rb-tree.d.ts +3 -4
- package/dist/mjs/types/data-structures/binary-tree/tree-multi-map.d.ts +3 -4
- package/dist/mjs/types/data-structures/heap/heap.d.ts +3 -2
- package/dist/mjs/types/data-structures/linked-list/doubly-linked-list.d.ts +2 -1
- package/dist/mjs/types/data-structures/linked-list/singly-linked-list.d.ts +2 -1
- package/dist/mjs/types/data-structures/priority-queue/priority-queue.d.ts +1 -1
- package/dist/mjs/types/data-structures/queue/deque.d.ts +3 -2
- package/dist/mjs/types/data-structures/queue/queue.d.ts +2 -1
- package/dist/mjs/types/data-structures/stack/stack.d.ts +2 -1
- package/dist/mjs/types/data-structures/trie/trie.d.ts +3 -2
- package/dist/mjs/utils/utils.js +3 -5
- package/dist/umd/data-structure-typed.js +1949 -1481
- package/dist/umd/data-structure-typed.min.js +2 -2
- package/dist/umd/data-structure-typed.min.js.map +1 -1
- package/package.json +6 -6
- package/src/data-structures/base/index.ts +2 -1
- package/src/data-structures/base/iterable-element-base.ts +250 -0
- package/src/data-structures/base/{iterable-base.ts → iterable-entry-base.ts} +22 -213
- package/src/data-structures/binary-tree/avl-tree-multi-map.ts +144 -95
- package/src/data-structures/binary-tree/avl-tree.ts +96 -69
- package/src/data-structures/binary-tree/binary-tree.ts +535 -403
- package/src/data-structures/binary-tree/bst.ts +247 -277
- package/src/data-structures/binary-tree/rb-tree.ts +123 -103
- package/src/data-structures/binary-tree/tree-multi-map.ts +127 -102
- package/src/data-structures/graph/abstract-graph.ts +10 -10
- package/src/data-structures/hash/hash-map.ts +46 -53
- package/src/data-structures/heap/heap.ts +71 -152
- package/src/data-structures/heap/max-heap.ts +88 -13
- package/src/data-structures/heap/min-heap.ts +78 -15
- package/src/data-structures/linked-list/doubly-linked-list.ts +32 -32
- package/src/data-structures/linked-list/singly-linked-list.ts +37 -29
- package/src/data-structures/priority-queue/max-priority-queue.ts +94 -13
- package/src/data-structures/priority-queue/min-priority-queue.ts +84 -15
- package/src/data-structures/priority-queue/priority-queue.ts +81 -4
- package/src/data-structures/queue/deque.ts +37 -26
- package/src/data-structures/queue/queue.ts +23 -36
- package/src/data-structures/stack/stack.ts +31 -26
- package/src/data-structures/trie/trie.ts +35 -20
- package/src/interfaces/binary-tree.ts +9 -9
- package/src/types/common.ts +1 -2
- package/src/types/data-structures/base/base.ts +14 -6
- package/src/types/data-structures/binary-tree/avl-tree-multi-map.ts +3 -4
- package/src/types/data-structures/binary-tree/avl-tree.ts +3 -4
- package/src/types/data-structures/binary-tree/binary-tree.ts +6 -6
- package/src/types/data-structures/binary-tree/bst.ts +4 -5
- package/src/types/data-structures/binary-tree/rb-tree.ts +3 -4
- package/src/types/data-structures/binary-tree/tree-multi-map.ts +3 -4
- package/src/types/data-structures/heap/heap.ts +4 -1
- package/src/types/data-structures/linked-list/doubly-linked-list.ts +3 -1
- package/src/types/data-structures/linked-list/singly-linked-list.ts +3 -1
- package/src/types/data-structures/priority-queue/priority-queue.ts +1 -1
- package/src/types/data-structures/queue/deque.ts +3 -1
- package/src/types/data-structures/queue/queue.ts +3 -1
- package/src/types/data-structures/stack/stack.ts +3 -1
- package/src/types/data-structures/trie/trie.ts +3 -1
- package/src/utils/utils.ts +3 -3
- package/test/integration/avl-tree.test.ts +2 -2
- package/test/integration/bst.test.ts +3 -3
- package/test/integration/index.html +25 -11
- package/test/unit/data-structures/binary-tree/avl-tree-multi-map.test.ts +68 -0
- package/test/unit/data-structures/binary-tree/binary-tree.test.ts +56 -0
- package/test/unit/data-structures/graph/directed-graph.test.ts +2 -2
- package/test/unit/data-structures/heap/heap.test.ts +80 -0
- package/test/unit/data-structures/heap/max-heap.test.ts +44 -1
- package/test/unit/data-structures/heap/min-heap.test.ts +18 -1
- package/test/unit/data-structures/priority-queue/max-priority-queue.test.ts +42 -0
- package/test/unit/data-structures/queue/deque.test.ts +30 -0
- package/test/unit/data-structures/queue/queue.test.ts +56 -0
- package/test/utils/big-o.ts +12 -6
- package/tsconfig-base.json +1 -0
- package/dist/cjs/data-structures/base/iterable-base.js.map +0 -1
|
@@ -4,32 +4,24 @@ exports.LinkedHashMap = exports.HashMap = void 0;
|
|
|
4
4
|
const base_1 = require("../base");
|
|
5
5
|
const utils_1 = require("../../utils");
|
|
6
6
|
/**
|
|
7
|
-
* 1. Key-Value Pair Storage: HashMap stores key-value pairs. Each key
|
|
7
|
+
* 1. Key-Value Pair Storage: HashMap stores key-value pairs. Each key map to a value.
|
|
8
8
|
* 2. Fast Lookup: It's used when you need to quickly find, insert, or delete entries based on a key.
|
|
9
|
-
* 3. Unique Keys: Keys are unique.
|
|
9
|
+
* 3. Unique Keys: Keys are unique.
|
|
10
|
+
* If you try to insert another entry with the same key, the new one will replace the old entry.
|
|
10
11
|
* 4. Unordered Collection: HashMap does not guarantee the order of entries, and the order may change over time.
|
|
11
12
|
*/
|
|
12
13
|
class HashMap extends base_1.IterableEntryBase {
|
|
13
14
|
/**
|
|
14
15
|
* The constructor function initializes a HashMap object with an optional initial collection and
|
|
15
16
|
* options.
|
|
16
|
-
* @param
|
|
17
|
+
* @param entryOrRawElements - The `entryOrRawElements` parameter is an iterable collection of elements of a type
|
|
17
18
|
* `T`. It is an optional parameter and its default value is an empty array `[]`.
|
|
18
19
|
* @param [options] - The `options` parameter is an optional object that can contain two properties:
|
|
19
20
|
*/
|
|
20
|
-
constructor(
|
|
21
|
+
constructor(entryOrRawElements = [], options) {
|
|
21
22
|
super();
|
|
22
23
|
this._store = {};
|
|
23
24
|
this._objMap = new Map();
|
|
24
|
-
this._toEntryFn = (rawElement) => {
|
|
25
|
-
if (this.isEntry(rawElement)) {
|
|
26
|
-
// TODO, For performance optimization, it may be necessary to only inspect the first element traversed.
|
|
27
|
-
return rawElement;
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
throw new Error("If the provided rawCollection does not adhere to the [key, value] type format, the toEntryFn in the constructor's options parameter needs to specified.");
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
25
|
this._size = 0;
|
|
34
26
|
this._hashFn = (key) => String(key);
|
|
35
27
|
if (options) {
|
|
@@ -41,8 +33,8 @@ class HashMap extends base_1.IterableEntryBase {
|
|
|
41
33
|
this._toEntryFn = toEntryFn;
|
|
42
34
|
}
|
|
43
35
|
}
|
|
44
|
-
if (
|
|
45
|
-
this.setMany(
|
|
36
|
+
if (entryOrRawElements) {
|
|
37
|
+
this.setMany(entryOrRawElements);
|
|
46
38
|
}
|
|
47
39
|
}
|
|
48
40
|
/**
|
|
@@ -137,24 +129,25 @@ class HashMap extends base_1.IterableEntryBase {
|
|
|
137
129
|
/**
|
|
138
130
|
* The function `setMany` takes an iterable collection of objects, maps each object to a key-value
|
|
139
131
|
* pair using a mapping function, and sets each key-value pair in the current object.
|
|
140
|
-
* @param
|
|
132
|
+
* @param entryOrRawElements - The `entryOrRawElements` parameter is an iterable collection of elements of a type
|
|
141
133
|
* `T`.
|
|
142
134
|
* @returns The `setMany` function is returning an array of booleans.
|
|
143
135
|
*/
|
|
144
|
-
setMany(
|
|
136
|
+
setMany(entryOrRawElements) {
|
|
145
137
|
const results = [];
|
|
146
|
-
for (const rawEle of
|
|
138
|
+
for (const rawEle of entryOrRawElements) {
|
|
147
139
|
let key, value;
|
|
148
140
|
if (this.isEntry(rawEle)) {
|
|
149
141
|
key = rawEle[0];
|
|
150
142
|
value = rawEle[1];
|
|
151
143
|
}
|
|
152
|
-
else {
|
|
144
|
+
else if (this.toEntryFn) {
|
|
153
145
|
const item = this.toEntryFn(rawEle);
|
|
154
146
|
key = item[0];
|
|
155
147
|
value = item[1];
|
|
156
148
|
}
|
|
157
|
-
|
|
149
|
+
if (key !== undefined && value !== undefined)
|
|
150
|
+
results.push(this.set(key, value));
|
|
158
151
|
}
|
|
159
152
|
return results;
|
|
160
153
|
}
|
|
@@ -347,14 +340,14 @@ exports.HashMap = HashMap;
|
|
|
347
340
|
class LinkedHashMap extends base_1.IterableEntryBase {
|
|
348
341
|
/**
|
|
349
342
|
* The constructor initializes a LinkedHashMap object with an optional raw collection and options.
|
|
350
|
-
* @param
|
|
343
|
+
* @param entryOrRawElements - The `entryOrRawElements` parameter is an iterable collection of elements. It is
|
|
351
344
|
* used to initialize the HashMapLinked instance with key-value pairs. Each element in the
|
|
352
|
-
* `
|
|
345
|
+
* `entryOrRawElements` is converted to a key-value pair using the `toEntryFn` function (if provided) and
|
|
353
346
|
* then added to the HashMap
|
|
354
347
|
* @param [options] - The `options` parameter is an optional object that can contain the following
|
|
355
348
|
* properties:
|
|
356
349
|
*/
|
|
357
|
-
constructor(
|
|
350
|
+
constructor(entryOrRawElements = [], options) {
|
|
358
351
|
super();
|
|
359
352
|
this._hashFn = (key) => String(key);
|
|
360
353
|
this._objHashFn = (key) => key;
|
|
@@ -366,7 +359,7 @@ class LinkedHashMap extends base_1.IterableEntryBase {
|
|
|
366
359
|
return rawElement;
|
|
367
360
|
}
|
|
368
361
|
else {
|
|
369
|
-
throw new Error("If the provided
|
|
362
|
+
throw new Error("If the provided entryOrRawElements does not adhere to the [key, value] type format, the toEntryFn in the constructor's options parameter needs to specified.");
|
|
370
363
|
}
|
|
371
364
|
};
|
|
372
365
|
this._size = 0;
|
|
@@ -382,8 +375,8 @@ class LinkedHashMap extends base_1.IterableEntryBase {
|
|
|
382
375
|
this._toEntryFn = toEntryFn;
|
|
383
376
|
}
|
|
384
377
|
}
|
|
385
|
-
if (
|
|
386
|
-
for (const el of
|
|
378
|
+
if (entryOrRawElements) {
|
|
379
|
+
for (const el of entryOrRawElements) {
|
|
387
380
|
const [key, value] = this.toEntryFn(el);
|
|
388
381
|
this.set(key, value);
|
|
389
382
|
}
|
|
@@ -422,7 +415,7 @@ class LinkedHashMap extends base_1.IterableEntryBase {
|
|
|
422
415
|
/**
|
|
423
416
|
* The function returns the head node of a HashMapLinkedNode.
|
|
424
417
|
* @returns The method `getHead()` is returning a `HashMapLinkedNode` object with key type `K` and
|
|
425
|
-
* value type `V | undefined`.
|
|
418
|
+
* a value type `V | undefined`.
|
|
426
419
|
*/
|
|
427
420
|
get head() {
|
|
428
421
|
return this._head;
|
|
@@ -526,7 +519,7 @@ class LinkedHashMap extends base_1.IterableEntryBase {
|
|
|
526
519
|
const hash = this.objHashFn(key);
|
|
527
520
|
node = this.objMap.get(hash);
|
|
528
521
|
if (!node && isNewKey) {
|
|
529
|
-
// Create new node
|
|
522
|
+
// Create a new node
|
|
530
523
|
node = { key: hash, value, prev: this.tail, next: this._sentinel };
|
|
531
524
|
this.objMap.set(hash, node);
|
|
532
525
|
}
|
|
@@ -566,13 +559,13 @@ class LinkedHashMap extends base_1.IterableEntryBase {
|
|
|
566
559
|
* The function `setMany` takes an iterable collection, converts each element into a key-value pair
|
|
567
560
|
* using a provided function, and sets each key-value pair in the current object, returning an array
|
|
568
561
|
* of booleans indicating the success of each set operation.
|
|
569
|
-
* @param
|
|
562
|
+
* @param entryOrRawElements - The entryOrRawElements parameter is an iterable collection of elements of type
|
|
570
563
|
* R.
|
|
571
564
|
* @returns The `setMany` function returns an array of booleans.
|
|
572
565
|
*/
|
|
573
|
-
setMany(
|
|
566
|
+
setMany(entryOrRawElements) {
|
|
574
567
|
const results = [];
|
|
575
|
-
for (const rawEle of
|
|
568
|
+
for (const rawEle of entryOrRawElements) {
|
|
576
569
|
const [key, value] = this.toEntryFn(rawEle);
|
|
577
570
|
results.push(this.set(key, value));
|
|
578
571
|
}
|
|
@@ -626,9 +619,8 @@ class LinkedHashMap extends base_1.IterableEntryBase {
|
|
|
626
619
|
/**
|
|
627
620
|
* Time Complexity: O(n)
|
|
628
621
|
* Space Complexity: O(1)
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
/**
|
|
622
|
+
*/
|
|
623
|
+
/**
|
|
632
624
|
* Time Complexity: O(n)
|
|
633
625
|
* Space Complexity: O(1)
|
|
634
626
|
*
|
|
@@ -650,9 +642,8 @@ class LinkedHashMap extends base_1.IterableEntryBase {
|
|
|
650
642
|
/**
|
|
651
643
|
* Time Complexity: O(1)
|
|
652
644
|
* Space Complexity: O(1)
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
/**
|
|
645
|
+
*/
|
|
646
|
+
/**
|
|
656
647
|
* Time Complexity: O(1)
|
|
657
648
|
* Space Complexity: O(1)
|
|
658
649
|
*
|
|
@@ -691,9 +682,8 @@ class LinkedHashMap extends base_1.IterableEntryBase {
|
|
|
691
682
|
/**
|
|
692
683
|
* Time Complexity: O(n)
|
|
693
684
|
* Space Complexity: O(1)
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
/**
|
|
685
|
+
*/
|
|
686
|
+
/**
|
|
697
687
|
* Time Complexity: O(n)
|
|
698
688
|
* Space Complexity: O(1)
|
|
699
689
|
*
|
|
@@ -713,9 +703,8 @@ class LinkedHashMap extends base_1.IterableEntryBase {
|
|
|
713
703
|
/**
|
|
714
704
|
* Time Complexity: O(1)
|
|
715
705
|
* Space Complexity: O(1)
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
/**
|
|
706
|
+
*/
|
|
707
|
+
/**
|
|
719
708
|
* Time Complexity: O(1)
|
|
720
709
|
* Space Complexity: O(1)
|
|
721
710
|
*
|
|
@@ -738,9 +727,8 @@ class LinkedHashMap extends base_1.IterableEntryBase {
|
|
|
738
727
|
/**
|
|
739
728
|
* Time Complexity: O(1)
|
|
740
729
|
* Space Complexity: O(1)
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
/**
|
|
730
|
+
*/
|
|
731
|
+
/**
|
|
744
732
|
* Time Complexity: O(1)
|
|
745
733
|
* Space Complexity: O(1)
|
|
746
734
|
*
|
|
@@ -775,9 +763,8 @@ class LinkedHashMap extends base_1.IterableEntryBase {
|
|
|
775
763
|
/**
|
|
776
764
|
* Time Complexity: O(n)
|
|
777
765
|
* Space Complexity: O(n)
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
/**
|
|
766
|
+
*/
|
|
767
|
+
/**
|
|
781
768
|
* Time Complexity: O(n)
|
|
782
769
|
* Space Complexity: O(n)
|
|
783
770
|
*
|
|
@@ -806,9 +793,8 @@ class LinkedHashMap extends base_1.IterableEntryBase {
|
|
|
806
793
|
/**
|
|
807
794
|
* Time Complexity: O(n)
|
|
808
795
|
* Space Complexity: O(n)
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
/**
|
|
796
|
+
*/
|
|
797
|
+
/**
|
|
812
798
|
* Time Complexity: O(n)
|
|
813
799
|
* Space Complexity: O(n)
|
|
814
800
|
*
|
|
@@ -857,9 +843,8 @@ class LinkedHashMap extends base_1.IterableEntryBase {
|
|
|
857
843
|
* Time Complexity: O(n)
|
|
858
844
|
* Space Complexity: O(1)
|
|
859
845
|
* where n is the number of entries in the LinkedHashMap.
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
/**
|
|
846
|
+
*/
|
|
847
|
+
/**
|
|
863
848
|
* Time Complexity: O(n)
|
|
864
849
|
* Space Complexity: O(1)
|
|
865
850
|
* where n is the number of entries in the LinkedHashMap.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hash-map.js","sourceRoot":"","sources":["../../../../src/data-structures/hash/hash-map.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hash-map.js","sourceRoot":"","sources":["../../../../src/data-structures/hash/hash-map.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,30 +16,27 @@ import { IterableElementBase } from '../base';
|
|
|
16
16
|
* 5. Managing Dynamic Data Sets: Heaps effectively manage dynamic data sets, especially when frequent access to the largest or smallest elements is required.
|
|
17
17
|
* 6. Non-linear Search: While a heap allows rapid access to its largest or smallest element, it is less efficient for other operations, such as searching for a specific element, as it is not designed for these tasks.
|
|
18
18
|
* 7. Efficient Sorting Algorithms: For example, heap sort. Heap sort uses the properties of a heap to sort elements.
|
|
19
|
-
* 8. Graph Algorithms: Such as Dijkstra's shortest path algorithm and
|
|
19
|
+
* 8. Graph Algorithms: Such as Dijkstra's shortest path algorithm and Prime's minimum-spanning tree algorithm, which use heaps to improve performance.
|
|
20
20
|
*/
|
|
21
|
-
export declare class Heap<E = any> extends IterableElementBase<E
|
|
21
|
+
export declare class Heap<E = any, R = any> extends IterableElementBase<E, R, Heap<E, R>> {
|
|
22
22
|
/**
|
|
23
23
|
* The constructor initializes a heap data structure with optional elements and options.
|
|
24
24
|
* @param elements - The `elements` parameter is an iterable object that contains the initial
|
|
25
|
-
* elements to be added to the heap.
|
|
25
|
+
* elements to be added to the heap.
|
|
26
|
+
* It is an optional parameter, and if not provided, the heap will
|
|
26
27
|
* be initialized as empty.
|
|
27
28
|
* @param [options] - The `options` parameter is an optional object that can contain additional
|
|
28
|
-
* configuration options for the heap.
|
|
29
|
-
*
|
|
29
|
+
* configuration options for the heap.
|
|
30
|
+
* In this case, it is used to specify a custom comparator
|
|
31
|
+
* function for comparing elements in the heap.
|
|
32
|
+
* The comparator function is used to determine the
|
|
30
33
|
* order of elements in the heap.
|
|
31
34
|
*/
|
|
32
|
-
constructor(elements?: Iterable<E>, options?: HeapOptions<E>);
|
|
33
|
-
protected _comparator: (a: E, b: E) => number;
|
|
34
|
-
/**
|
|
35
|
-
* The function returns the value of the _comparator property.
|
|
36
|
-
* @returns The `_comparator` property is being returned.
|
|
37
|
-
*/
|
|
38
|
-
get comparator(): (a: E, b: E) => number;
|
|
35
|
+
constructor(elements?: Iterable<E> | Iterable<R>, options?: HeapOptions<E, R>);
|
|
39
36
|
protected _elements: E[];
|
|
40
37
|
/**
|
|
41
38
|
* The function returns an array of elements.
|
|
42
|
-
* @returns The
|
|
39
|
+
* @returns The element array is being returned.
|
|
43
40
|
*/
|
|
44
41
|
get elements(): E[];
|
|
45
42
|
/**
|
|
@@ -57,12 +54,7 @@ export declare class Heap<E = any> extends IterableElementBase<E> {
|
|
|
57
54
|
* @param elements
|
|
58
55
|
* @param options
|
|
59
56
|
*/
|
|
60
|
-
static heapify<E>(elements: Iterable<E>, options: HeapOptions<E>): Heap<E>;
|
|
61
|
-
/**
|
|
62
|
-
* Time Complexity: O(log n)
|
|
63
|
-
* Space Complexity: O(1)
|
|
64
|
-
* where n is the number of elements in the heap.
|
|
65
|
-
*/
|
|
57
|
+
static heapify<E = any, R = any>(elements: Iterable<E>, options: HeapOptions<E, R>): Heap<E>;
|
|
66
58
|
/**
|
|
67
59
|
* Time Complexity: O(log n)
|
|
68
60
|
* Space Complexity: O(1)
|
|
@@ -71,23 +63,14 @@ export declare class Heap<E = any> extends IterableElementBase<E> {
|
|
|
71
63
|
* @param element - The element to be inserted.
|
|
72
64
|
*/
|
|
73
65
|
add(element: E): boolean;
|
|
74
|
-
/**
|
|
75
|
-
* Time Complexity: O(log n)
|
|
76
|
-
* Space Complexity: O(1)
|
|
77
|
-
* where n is the number of elements in the heap.
|
|
78
|
-
*/
|
|
79
66
|
/**
|
|
80
67
|
* Time Complexity: O(log n)
|
|
81
68
|
* Space Complexity: O(1)
|
|
82
69
|
*
|
|
83
|
-
* Remove and return the top element (smallest or largest element) from the heap.
|
|
70
|
+
* Remove and return the top element (the smallest or largest element) from the heap.
|
|
84
71
|
* @returns The top element or undefined if the heap is empty.
|
|
85
72
|
*/
|
|
86
73
|
poll(): E | undefined;
|
|
87
|
-
/**
|
|
88
|
-
* Time Complexity: O(1)
|
|
89
|
-
* Space Complexity: O(1)
|
|
90
|
-
*/
|
|
91
74
|
/**
|
|
92
75
|
* Time Complexity: O(1)
|
|
93
76
|
* Space Complexity: O(1)
|
|
@@ -105,10 +88,6 @@ export declare class Heap<E = any> extends IterableElementBase<E> {
|
|
|
105
88
|
* Reset the elements of the heap. Make the elements empty.
|
|
106
89
|
*/
|
|
107
90
|
clear(): void;
|
|
108
|
-
/**
|
|
109
|
-
* Time Complexity: O(n)
|
|
110
|
-
* Space Complexity: O(n)
|
|
111
|
-
*/
|
|
112
91
|
/**
|
|
113
92
|
* Time Complexity: O(n)
|
|
114
93
|
* Space Complexity: O(n)
|
|
@@ -117,10 +96,6 @@ export declare class Heap<E = any> extends IterableElementBase<E> {
|
|
|
117
96
|
* @param elements
|
|
118
97
|
*/
|
|
119
98
|
refill(elements: E[]): boolean[];
|
|
120
|
-
/**
|
|
121
|
-
* Time Complexity: O(n)
|
|
122
|
-
* Space Complexity: O(1)
|
|
123
|
-
*/
|
|
124
99
|
/**
|
|
125
100
|
* Time Complexity: O(n)
|
|
126
101
|
* Space Complexity: O(1)
|
|
@@ -131,12 +106,7 @@ export declare class Heap<E = any> extends IterableElementBase<E> {
|
|
|
131
106
|
*/
|
|
132
107
|
has(element: E): boolean;
|
|
133
108
|
/**
|
|
134
|
-
* Time Complexity:
|
|
135
|
-
* Space Complexity: O(1)
|
|
136
|
-
* The worst-case O(n) This is because, in the worst case, the element to be deleted is located at the end of the heap (not the root), and after deletion, we may need to reorganize the elements by performing a sinkDown operation.
|
|
137
|
-
*/
|
|
138
|
-
/**
|
|
139
|
-
* Time Complexity: O(n)
|
|
109
|
+
* Time Complexity: O(n)
|
|
140
110
|
* Space Complexity: O(1)
|
|
141
111
|
*
|
|
142
112
|
* The `delete` function removes an element from an array-like data structure, maintaining the order
|
|
@@ -147,11 +117,6 @@ export declare class Heap<E = any> extends IterableElementBase<E> {
|
|
|
147
117
|
* successfully deleted from the array, and `false` if the element was not found in the array.
|
|
148
118
|
*/
|
|
149
119
|
delete(element: E): boolean;
|
|
150
|
-
/**
|
|
151
|
-
* Time Complexity: O(n)
|
|
152
|
-
* Space Complexity: O(log n)
|
|
153
|
-
* where log n is the height of the heap.
|
|
154
|
-
*/
|
|
155
120
|
/**
|
|
156
121
|
* Time Complexity: O(n)
|
|
157
122
|
* Space Complexity: O(log n)
|
|
@@ -161,10 +126,6 @@ export declare class Heap<E = any> extends IterableElementBase<E> {
|
|
|
161
126
|
* @returns An array containing elements traversed in the specified order.
|
|
162
127
|
*/
|
|
163
128
|
dfs(order?: DFSOrderPattern): E[];
|
|
164
|
-
/**
|
|
165
|
-
* Time Complexity: O(n)
|
|
166
|
-
* Space Complexity: O(n)
|
|
167
|
-
*/
|
|
168
129
|
/**
|
|
169
130
|
* Time Complexity: O(n)
|
|
170
131
|
* Space Complexity: O(n)
|
|
@@ -173,10 +134,6 @@ export declare class Heap<E = any> extends IterableElementBase<E> {
|
|
|
173
134
|
* @returns An array containing the elements of the heap.
|
|
174
135
|
*/
|
|
175
136
|
toArray(): E[];
|
|
176
|
-
/**
|
|
177
|
-
* Time Complexity: O(n)
|
|
178
|
-
* Space Complexity: O(n)
|
|
179
|
-
*/
|
|
180
137
|
/**
|
|
181
138
|
* Time Complexity: O(n)
|
|
182
139
|
* Space Complexity: O(n)
|
|
@@ -184,11 +141,7 @@ export declare class Heap<E = any> extends IterableElementBase<E> {
|
|
|
184
141
|
* Clone the heap, creating a new heap with the same elements.
|
|
185
142
|
* @returns A new Heap instance containing the same elements.
|
|
186
143
|
*/
|
|
187
|
-
clone(): Heap<E>;
|
|
188
|
-
/**
|
|
189
|
-
* Time Complexity: O(n log n)
|
|
190
|
-
* Space Complexity: O(n)
|
|
191
|
-
*/
|
|
144
|
+
clone(): Heap<E, R>;
|
|
192
145
|
/**
|
|
193
146
|
* Time Complexity: O(n log n)
|
|
194
147
|
* Space Complexity: O(n)
|
|
@@ -197,10 +150,6 @@ export declare class Heap<E = any> extends IterableElementBase<E> {
|
|
|
197
150
|
* @returns An array containing the elements sorted in ascending order.
|
|
198
151
|
*/
|
|
199
152
|
sort(): E[];
|
|
200
|
-
/**
|
|
201
|
-
* Time Complexity: O(n log n)
|
|
202
|
-
* Space Complexity: O(n)
|
|
203
|
-
*/
|
|
204
153
|
/**
|
|
205
154
|
* Time Complexity: O(n log n)
|
|
206
155
|
* Space Complexity: O(n)
|
|
@@ -208,10 +157,6 @@ export declare class Heap<E = any> extends IterableElementBase<E> {
|
|
|
208
157
|
* Fix the entire heap to maintain heap properties.
|
|
209
158
|
*/
|
|
210
159
|
fix(): boolean[];
|
|
211
|
-
/**
|
|
212
|
-
* Time Complexity: O(n)
|
|
213
|
-
* Space Complexity: O(n)
|
|
214
|
-
*/
|
|
215
160
|
/**
|
|
216
161
|
* Time Complexity: O(n)
|
|
217
162
|
* Space Complexity: O(n)
|
|
@@ -228,40 +173,40 @@ export declare class Heap<E = any> extends IterableElementBase<E> {
|
|
|
228
173
|
* @returns The `filter` method is returning a new `Heap` object that contains the elements that pass
|
|
229
174
|
* the filter condition specified by the `callback` function.
|
|
230
175
|
*/
|
|
231
|
-
filter(callback: ElementCallback<E, boolean
|
|
232
|
-
/**
|
|
233
|
-
* Time Complexity: O(n)
|
|
234
|
-
* Space Complexity: O(n)
|
|
235
|
-
*/
|
|
176
|
+
filter(callback: ElementCallback<E, R, boolean, Heap<E, R>>, thisArg?: any): Heap<E, R>;
|
|
236
177
|
/**
|
|
237
|
-
* Time Complexity: O(n)
|
|
178
|
+
* Time Complexity: O(n log n)
|
|
238
179
|
* Space Complexity: O(n)
|
|
239
180
|
*
|
|
240
181
|
* The `map` function creates a new heap by applying a callback function to each element of the
|
|
241
182
|
* original heap.
|
|
242
|
-
* @param callback - The callback parameter is a function that will be called for each element in
|
|
243
|
-
*
|
|
244
|
-
* and the
|
|
245
|
-
*
|
|
246
|
-
*
|
|
247
|
-
*
|
|
248
|
-
*
|
|
183
|
+
* @param callback - The `callback` parameter is a function that will be called for each element in
|
|
184
|
+
* the heap. It takes three arguments: `el` (the current element), `index` (the index of the current
|
|
185
|
+
* element), and `this` (the heap itself). The callback function should return a value of
|
|
186
|
+
* @param comparator - The `comparator` parameter is a function that defines the order of the
|
|
187
|
+
* elements in the heap. It takes two elements `a` and `b` as arguments and returns a negative number
|
|
188
|
+
* if `a` should be placed before `b`, a positive number if `a` should be placed after
|
|
189
|
+
* @param [toElementFn] - The `toElementFn` parameter is an optional function that converts the raw
|
|
190
|
+
* element `RR` to the desired type `T`. It takes a single argument `rawElement` of type `RR` and
|
|
191
|
+
* returns a value of type `T`. This function is used to transform the elements of the original
|
|
249
192
|
* @param {any} [thisArg] - The `thisArg` parameter is an optional argument that allows you to
|
|
250
|
-
* specify the value of `this` within the callback function. It is used
|
|
251
|
-
*
|
|
252
|
-
*
|
|
253
|
-
* @returns a new instance of the Heap class
|
|
254
|
-
* original Heap.
|
|
193
|
+
* specify the value of `this` within the callback function. It is used to set the context or scope
|
|
194
|
+
* in which the callback function will be executed. If `thisArg` is provided, it will be used as the
|
|
195
|
+
* value of
|
|
196
|
+
* @returns a new instance of the `Heap` class with the mapped elements.
|
|
255
197
|
*/
|
|
256
|
-
map<
|
|
198
|
+
map<EM, RM>(callback: ElementCallback<E, R, EM, Heap<E, R>>, comparator: Comparator<EM>, toElementFn?: (rawElement: RM) => EM, thisArg?: any): Heap<EM, RM>;
|
|
199
|
+
protected _DEFAULT_COMPARATOR: (a: E, b: E) => number;
|
|
200
|
+
protected _comparator: Comparator<E>;
|
|
257
201
|
/**
|
|
258
|
-
* The function
|
|
202
|
+
* The function returns the value of the _comparator property.
|
|
203
|
+
* @returns The `_comparator` property is being returned.
|
|
259
204
|
*/
|
|
260
|
-
|
|
205
|
+
get comparator(): Comparator<E>;
|
|
261
206
|
/**
|
|
262
|
-
*
|
|
263
|
-
* Space Complexity: O(1)
|
|
207
|
+
* The function `_getIterator` returns an iterable iterator for the elements in the class.
|
|
264
208
|
*/
|
|
209
|
+
protected _getIterator(): IterableIterator<E>;
|
|
265
210
|
/**
|
|
266
211
|
* Time Complexity: O(log n)
|
|
267
212
|
* Space Complexity: O(1)
|
|
@@ -270,10 +215,6 @@ export declare class Heap<E = any> extends IterableElementBase<E> {
|
|
|
270
215
|
* @param index - The index of the newly added element.
|
|
271
216
|
*/
|
|
272
217
|
protected _bubbleUp(index: number): boolean;
|
|
273
|
-
/**
|
|
274
|
-
* Time Complexity: O(log n)
|
|
275
|
-
* Space Complexity: O(1)
|
|
276
|
-
*/
|
|
277
218
|
/**
|
|
278
219
|
* Time Complexity: O(log n)
|
|
279
220
|
* Space Complexity: O(1)
|
|
@@ -343,10 +284,6 @@ export declare class FibonacciHeap<E> {
|
|
|
343
284
|
* @returns {number} The size of the heap. Returns 0 if the heap is empty. Returns -1 if the heap is invalid.
|
|
344
285
|
*/
|
|
345
286
|
clear(): void;
|
|
346
|
-
/**
|
|
347
|
-
* Time Complexity: O(1)
|
|
348
|
-
* Space Complexity: O(1)
|
|
349
|
-
*/
|
|
350
287
|
/**
|
|
351
288
|
* Time Complexity: O(1)
|
|
352
289
|
* Space Complexity: O(1)
|
|
@@ -356,10 +293,6 @@ export declare class FibonacciHeap<E> {
|
|
|
356
293
|
* @returns {FibonacciHeap<E>} FibonacciHeap<E> - The heap itself.
|
|
357
294
|
*/
|
|
358
295
|
add(element: E): FibonacciHeap<E>;
|
|
359
|
-
/**
|
|
360
|
-
* Time Complexity: O(1)
|
|
361
|
-
* Space Complexity: O(1)
|
|
362
|
-
*/
|
|
363
296
|
/**
|
|
364
297
|
* Time Complexity: O(1)
|
|
365
298
|
* Space Complexity: O(1)
|
|
@@ -369,10 +302,6 @@ export declare class FibonacciHeap<E> {
|
|
|
369
302
|
* @returns {FibonacciHeap<E>} FibonacciHeap<E> - The heap itself.
|
|
370
303
|
*/
|
|
371
304
|
push(element: E): FibonacciHeap<E>;
|
|
372
|
-
/**
|
|
373
|
-
* Time Complexity: O(1)
|
|
374
|
-
* Space Complexity: O(1)
|
|
375
|
-
*/
|
|
376
305
|
/**
|
|
377
306
|
* Time Complexity: O(1)
|
|
378
307
|
* Space Complexity: O(1)
|
|
@@ -412,7 +341,7 @@ export declare class FibonacciHeap<E> {
|
|
|
412
341
|
* Time Complexity: O(log n)
|
|
413
342
|
* Space Complexity: O(1)
|
|
414
343
|
*
|
|
415
|
-
* Remove and return the top element (smallest or largest element) from the heap.
|
|
344
|
+
* Remove and return the top element (the smallest or largest element) from the heap.
|
|
416
345
|
* @returns The top element or undefined if the heap is empty.
|
|
417
346
|
*/
|
|
418
347
|
poll(): E | undefined;
|
|
@@ -424,7 +353,7 @@ export declare class FibonacciHeap<E> {
|
|
|
424
353
|
* Time Complexity: O(log n)
|
|
425
354
|
* Space Complexity: O(1)
|
|
426
355
|
*
|
|
427
|
-
* Remove and return the top element (smallest or largest element) from the heap.
|
|
356
|
+
* Remove and return the top element (the smallest or largest element) from the heap.
|
|
428
357
|
* @returns The top element or undefined if the heap is empty.
|
|
429
358
|
*/
|
|
430
359
|
pop(): E | undefined;
|
|
@@ -472,8 +401,8 @@ export declare class FibonacciHeap<E> {
|
|
|
472
401
|
/**
|
|
473
402
|
* Time Complexity: O(1)
|
|
474
403
|
* Space Complexity: O(1)
|
|
475
|
-
|
|
476
|
-
* Remove and return the top element (smallest or largest element) from the heap.
|
|
404
|
+
*
|
|
405
|
+
* Remove and return the top element (the smallest or largest element) from the heap.
|
|
477
406
|
* @param node - The node to be removed.
|
|
478
407
|
* @protected
|
|
479
408
|
*/
|
|
@@ -486,7 +415,7 @@ export declare class FibonacciHeap<E> {
|
|
|
486
415
|
* Time Complexity: O(1)
|
|
487
416
|
* Space Complexity: O(1)
|
|
488
417
|
*
|
|
489
|
-
* Remove and return the top element (smallest or largest element) from the heap.
|
|
418
|
+
* Remove and return the top element (the smallest or largest element) from the heap.
|
|
490
419
|
* @param y
|
|
491
420
|
* @param x
|
|
492
421
|
* @protected
|
|
@@ -500,7 +429,7 @@ export declare class FibonacciHeap<E> {
|
|
|
500
429
|
* Time Complexity: O(n log n)
|
|
501
430
|
* Space Complexity: O(n)
|
|
502
431
|
*
|
|
503
|
-
* Remove and return the top element (smallest or largest element) from the heap.
|
|
432
|
+
* Remove and return the top element (the smallest or largest element) from the heap.
|
|
504
433
|
* @protected
|
|
505
434
|
*/
|
|
506
435
|
protected _consolidate(): void;
|