data-structure-typed 1.49.1 → 1.49.2
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 +16 -16
- package/README_zh-CN.md +2 -2
- package/benchmark/report.html +46 -1
- package/benchmark/report.json +457 -22
- package/dist/cjs/data-structures/base/iterable-base.d.ts +11 -0
- package/dist/cjs/data-structures/base/iterable-base.js +21 -0
- package/dist/cjs/data-structures/base/iterable-base.js.map +1 -1
- package/dist/cjs/data-structures/hash/hash-map.d.ts +9 -9
- package/dist/cjs/data-structures/hash/hash-map.js +16 -15
- package/dist/cjs/data-structures/hash/hash-map.js.map +1 -1
- package/dist/cjs/data-structures/heap/heap.d.ts +6 -35
- package/dist/cjs/data-structures/heap/heap.js +10 -42
- package/dist/cjs/data-structures/heap/heap.js.map +1 -1
- package/dist/cjs/data-structures/linked-list/doubly-linked-list.d.ts +87 -93
- package/dist/cjs/data-structures/linked-list/doubly-linked-list.js +126 -129
- 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 +16 -21
- package/dist/cjs/data-structures/linked-list/singly-linked-list.js +42 -42
- package/dist/cjs/data-structures/linked-list/singly-linked-list.js.map +1 -1
- package/dist/cjs/data-structures/linked-list/skip-linked-list.d.ts +2 -2
- package/dist/cjs/data-structures/linked-list/skip-linked-list.js +2 -2
- package/dist/cjs/data-structures/linked-list/skip-linked-list.js.map +1 -1
- package/dist/cjs/data-structures/queue/deque.d.ts +70 -75
- package/dist/cjs/data-structures/queue/deque.js +100 -110
- package/dist/cjs/data-structures/queue/deque.js.map +1 -1
- package/dist/cjs/data-structures/queue/queue.d.ts +13 -14
- package/dist/cjs/data-structures/queue/queue.js +15 -18
- package/dist/cjs/data-structures/queue/queue.js.map +1 -1
- package/dist/cjs/data-structures/stack/stack.d.ts +2 -3
- package/dist/cjs/data-structures/stack/stack.js +2 -5
- package/dist/cjs/data-structures/stack/stack.js.map +1 -1
- package/dist/cjs/data-structures/trie/trie.d.ts +1 -2
- package/dist/cjs/data-structures/trie/trie.js +2 -5
- package/dist/cjs/data-structures/trie/trie.js.map +1 -1
- package/dist/mjs/data-structures/base/iterable-base.d.ts +11 -0
- package/dist/mjs/data-structures/base/iterable-base.js +21 -0
- package/dist/mjs/data-structures/hash/hash-map.d.ts +9 -9
- package/dist/mjs/data-structures/hash/hash-map.js +16 -15
- package/dist/mjs/data-structures/heap/heap.d.ts +6 -35
- package/dist/mjs/data-structures/heap/heap.js +10 -42
- package/dist/mjs/data-structures/linked-list/doubly-linked-list.d.ts +87 -93
- package/dist/mjs/data-structures/linked-list/doubly-linked-list.js +125 -128
- package/dist/mjs/data-structures/linked-list/singly-linked-list.d.ts +16 -21
- package/dist/mjs/data-structures/linked-list/singly-linked-list.js +43 -43
- package/dist/mjs/data-structures/linked-list/skip-linked-list.d.ts +2 -2
- package/dist/mjs/data-structures/linked-list/skip-linked-list.js +2 -2
- package/dist/mjs/data-structures/queue/deque.d.ts +70 -75
- package/dist/mjs/data-structures/queue/deque.js +100 -110
- package/dist/mjs/data-structures/queue/queue.d.ts +13 -14
- package/dist/mjs/data-structures/queue/queue.js +15 -18
- package/dist/mjs/data-structures/stack/stack.d.ts +2 -3
- package/dist/mjs/data-structures/stack/stack.js +2 -5
- package/dist/mjs/data-structures/trie/trie.d.ts +1 -2
- package/dist/mjs/data-structures/trie/trie.js +2 -5
- package/dist/umd/data-structure-typed.js +338 -370
- package/dist/umd/data-structure-typed.min.js +2 -2
- package/dist/umd/data-structure-typed.min.js.map +1 -1
- package/package.json +1 -1
- package/src/data-structures/base/iterable-base.ts +24 -0
- package/src/data-structures/hash/hash-map.ts +27 -28
- package/src/data-structures/heap/heap.ts +19 -57
- package/src/data-structures/linked-list/doubly-linked-list.ts +138 -142
- package/src/data-structures/linked-list/singly-linked-list.ts +49 -49
- package/src/data-structures/linked-list/skip-linked-list.ts +2 -2
- package/src/data-structures/queue/deque.ts +122 -135
- package/src/data-structures/queue/queue.ts +19 -23
- package/src/data-structures/stack/stack.ts +4 -8
- package/src/data-structures/trie/trie.ts +5 -9
- package/test/performance/data-structures/comparison/comparison.test.ts +6 -6
- package/test/performance/data-structures/heap/heap.test.ts +2 -2
- package/test/performance/data-structures/linked-list/doubly-linked-list.test.ts +2 -2
- package/test/performance/data-structures/linked-list/singly-linked-list.test.ts +2 -2
- package/test/performance/data-structures/priority-queue/priority-queue.test.ts +2 -2
- package/test/unit/data-structures/binary-tree/binary-tree.test.ts +2 -2
- package/test/unit/data-structures/hash/hash-map.test.ts +2 -2
- package/test/unit/data-structures/heap/heap.test.ts +1 -1
- package/test/unit/data-structures/heap/min-heap.test.ts +1 -1
- package/test/unit/data-structures/linked-list/doubly-linked-list.test.ts +30 -30
- package/test/unit/data-structures/linked-list/linked-list.test.ts +1 -1
- package/test/unit/data-structures/linked-list/singly-linked-list.test.ts +21 -21
- package/test/unit/data-structures/linked-list/skip-list.test.ts +2 -2
- package/test/unit/data-structures/queue/deque.test.ts +5 -5
- package/test/unit/data-structures/queue/queue.test.ts +4 -4
- package/test/unit/data-structures/trie/trie.test.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stack.js","sourceRoot":"","sources":["../../../../src/data-structures/stack/stack.ts"],"names":[],"mappings":";;;AAQA,kCAA8C;AAE9C;;;;;;;GAOG;AACH,MAAa,KAAe,SAAQ,0BAAsB;IACxD;;;;;OAKG;IACH,YAAY,QAAsB;QAChC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC1B,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAChB,CAAC;QACH,CAAC;IACH,CAAC;IAID,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;OAGG;IAEH;;;OAGG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,SAAS,CAAI,QAAa;QAC/B,OAAO,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,OAAO,EAAE;YAAE,OAAO,SAAS,CAAC;QAErC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjD,CAAC;IAED;;;OAGG;IAEH;;;;;;;OAOG;IACH,IAAI,CAAC,OAAU;QACb,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IAEH;;;;;;;OAOG;IACH,GAAG;QACD,IAAI,IAAI,CAAC,OAAO,EAAE;YAAE,OAAO
|
|
1
|
+
{"version":3,"file":"stack.js","sourceRoot":"","sources":["../../../../src/data-structures/stack/stack.ts"],"names":[],"mappings":"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"}
|
|
@@ -172,7 +172,7 @@ export declare class Trie extends IterableElementBase<string> {
|
|
|
172
172
|
* specific object as the context for the `predicate` function. If `thisArg` is provided, it will be
|
|
173
173
|
* @returns The `filter` method is returning an array of strings (`string[]`).
|
|
174
174
|
*/
|
|
175
|
-
filter(predicate: ElementCallback<string, boolean>, thisArg?: any):
|
|
175
|
+
filter(predicate: ElementCallback<string, boolean>, thisArg?: any): Trie;
|
|
176
176
|
/**
|
|
177
177
|
* Time Complexity: O(n)
|
|
178
178
|
* Space Complexity: O(n)
|
|
@@ -191,7 +191,6 @@ export declare class Trie extends IterableElementBase<string> {
|
|
|
191
191
|
* @returns The `map` function is returning a new Trie object.
|
|
192
192
|
*/
|
|
193
193
|
map(callback: ElementCallback<string, string>, thisArg?: any): Trie;
|
|
194
|
-
print(): void;
|
|
195
194
|
protected _getIterator(): IterableIterator<string>;
|
|
196
195
|
/**
|
|
197
196
|
* Time Complexity: O(M), where M is the length of the input string.
|
|
@@ -341,11 +341,11 @@ class Trie extends base_1.IterableElementBase {
|
|
|
341
341
|
* @returns The `filter` method is returning an array of strings (`string[]`).
|
|
342
342
|
*/
|
|
343
343
|
filter(predicate, thisArg) {
|
|
344
|
-
const results =
|
|
344
|
+
const results = new Trie();
|
|
345
345
|
let index = 0;
|
|
346
346
|
for (const word of this) {
|
|
347
347
|
if (predicate.call(thisArg, word, index, this)) {
|
|
348
|
-
results.
|
|
348
|
+
results.add(word);
|
|
349
349
|
}
|
|
350
350
|
index++;
|
|
351
351
|
}
|
|
@@ -377,9 +377,6 @@ class Trie extends base_1.IterableElementBase {
|
|
|
377
377
|
}
|
|
378
378
|
return newTrie;
|
|
379
379
|
}
|
|
380
|
-
print() {
|
|
381
|
-
console.log([...this]);
|
|
382
|
-
}
|
|
383
380
|
*_getIterator() {
|
|
384
381
|
function* _dfs(node, path) {
|
|
385
382
|
if (node.isEnd) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trie.js","sourceRoot":"","sources":["../../../../src/data-structures/trie/trie.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"trie.js","sourceRoot":"","sources":["../../../../src/data-structures/trie/trie.ts"],"names":[],"mappings":"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"}
|
|
@@ -126,6 +126,12 @@ export declare abstract class IterableEntryBase<K = any, V = any> {
|
|
|
126
126
|
* all the elements in the collection.
|
|
127
127
|
*/
|
|
128
128
|
reduce<U>(callbackfn: ReduceEntryCallback<K, V, U>, initialValue: U): U;
|
|
129
|
+
hasValue(value: V): boolean;
|
|
130
|
+
/**
|
|
131
|
+
* Time Complexity: O(n)
|
|
132
|
+
* Space Complexity: O(n)
|
|
133
|
+
*/
|
|
134
|
+
print(): void;
|
|
129
135
|
protected abstract _getIterator(...args: any[]): IterableIterator<[K, V]>;
|
|
130
136
|
}
|
|
131
137
|
export declare abstract class IterableElementBase<V> {
|
|
@@ -228,5 +234,10 @@ export declare abstract class IterableElementBase<V> {
|
|
|
228
234
|
* all the elements in the array and applying the callback function to each element.
|
|
229
235
|
*/
|
|
230
236
|
reduce<U>(callbackfn: ReduceElementCallback<V, U>, initialValue: U): U;
|
|
237
|
+
/**
|
|
238
|
+
* Time Complexity: O(n)
|
|
239
|
+
* Space Complexity: O(n)
|
|
240
|
+
*/
|
|
241
|
+
print(): void;
|
|
231
242
|
protected abstract _getIterator(...args: any[]): IterableIterator<V>;
|
|
232
243
|
}
|
|
@@ -169,6 +169,20 @@ export class IterableEntryBase {
|
|
|
169
169
|
}
|
|
170
170
|
return accumulator;
|
|
171
171
|
}
|
|
172
|
+
hasValue(value) {
|
|
173
|
+
for (const [, elementValue] of this) {
|
|
174
|
+
if (elementValue === value)
|
|
175
|
+
return true;
|
|
176
|
+
}
|
|
177
|
+
return false;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Time Complexity: O(n)
|
|
181
|
+
* Space Complexity: O(n)
|
|
182
|
+
*/
|
|
183
|
+
print() {
|
|
184
|
+
console.log([...this]);
|
|
185
|
+
}
|
|
172
186
|
}
|
|
173
187
|
export class IterableElementBase {
|
|
174
188
|
/**
|
|
@@ -304,4 +318,11 @@ export class IterableElementBase {
|
|
|
304
318
|
}
|
|
305
319
|
return accumulator;
|
|
306
320
|
}
|
|
321
|
+
/**
|
|
322
|
+
* Time Complexity: O(n)
|
|
323
|
+
* Space Complexity: O(n)
|
|
324
|
+
*/
|
|
325
|
+
print() {
|
|
326
|
+
console.log([...this]);
|
|
327
|
+
}
|
|
307
328
|
}
|
|
@@ -42,13 +42,13 @@ export declare class HashMap<K = any, V = any> extends IterableEntryBase<K, V> {
|
|
|
42
42
|
* @param {V} value - The value parameter represents the value that you want to associate with the
|
|
43
43
|
* key in the data structure.
|
|
44
44
|
*/
|
|
45
|
-
set(key: K, value: V):
|
|
45
|
+
set(key: K, value: V): boolean;
|
|
46
46
|
/**
|
|
47
47
|
* The function "setMany" sets multiple key-value pairs in a map.
|
|
48
48
|
* @param elements - The `elements` parameter is an iterable containing key-value pairs. Each
|
|
49
49
|
* key-value pair is represented as an array with two elements: the key and the value.
|
|
50
50
|
*/
|
|
51
|
-
setMany(elements: Iterable<[K, V]>):
|
|
51
|
+
setMany(elements: Iterable<[K, V]>): boolean[];
|
|
52
52
|
/**
|
|
53
53
|
* The `get` function retrieves a value from a map based on a given key, either from an object map or
|
|
54
54
|
* a string map.
|
|
@@ -114,6 +114,7 @@ export declare class HashMap<K = any, V = any> extends IterableEntryBase<K, V> {
|
|
|
114
114
|
*/
|
|
115
115
|
filter(predicate: EntryCallback<K, V, boolean>, thisArg?: any): HashMap<K, V>;
|
|
116
116
|
print(): void;
|
|
117
|
+
put(key: K, value: V): boolean;
|
|
117
118
|
/**
|
|
118
119
|
* The function returns an iterator that yields key-value pairs from both an object store and an
|
|
119
120
|
* object map.
|
|
@@ -178,10 +179,9 @@ export declare class LinkedHashMap<K = any, V = any> extends IterableEntryBase<K
|
|
|
178
179
|
* value associated with the key being set in the data structure.
|
|
179
180
|
* @returns the size of the data structure after the key-value pair has been set.
|
|
180
181
|
*/
|
|
181
|
-
set(key: K, value?: V):
|
|
182
|
+
set(key: K, value?: V): boolean;
|
|
182
183
|
has(key: K): boolean;
|
|
183
|
-
|
|
184
|
-
setMany(entries: Iterable<[K, V]>): void;
|
|
184
|
+
setMany(entries: Iterable<[K, V]>): boolean[];
|
|
185
185
|
/**
|
|
186
186
|
* Time Complexity: O(1)
|
|
187
187
|
* Space Complexity: O(1)
|
|
@@ -207,7 +207,7 @@ export declare class LinkedHashMap<K = any, V = any> extends IterableEntryBase<K
|
|
|
207
207
|
* the specified index in the data structure. The key-value pair is represented as a tuple `[K, V]`,
|
|
208
208
|
* where `K` is the key and `V` is the value.
|
|
209
209
|
*/
|
|
210
|
-
getAt(index: number):
|
|
210
|
+
getAt(index: number): V | undefined;
|
|
211
211
|
/**
|
|
212
212
|
* Time Complexity: O(1)
|
|
213
213
|
* Space Complexity: O(1)
|
|
@@ -228,7 +228,7 @@ export declare class LinkedHashMap<K = any, V = any> extends IterableEntryBase<K
|
|
|
228
228
|
* deleted in the linked list.
|
|
229
229
|
* @returns The size of the list after deleting the element at the specified index.
|
|
230
230
|
*/
|
|
231
|
-
deleteAt(index: number):
|
|
231
|
+
deleteAt(index: number): boolean;
|
|
232
232
|
/**
|
|
233
233
|
* Time Complexity: O(1)
|
|
234
234
|
* Space Complexity: O(1)
|
|
@@ -288,7 +288,7 @@ export declare class LinkedHashMap<K = any, V = any> extends IterableEntryBase<K
|
|
|
288
288
|
* function.
|
|
289
289
|
*/
|
|
290
290
|
map<NV>(callback: EntryCallback<K, V, NV>, thisArg?: any): LinkedHashMap<K, NV>;
|
|
291
|
-
|
|
291
|
+
put(key: K, value: V): boolean;
|
|
292
292
|
/**
|
|
293
293
|
* Time Complexity: O(n), where n is the number of elements in the LinkedHashMap.
|
|
294
294
|
* Space Complexity: O(1)
|
|
@@ -306,5 +306,5 @@ export declare class LinkedHashMap<K = any, V = any> extends IterableEntryBase<K
|
|
|
306
306
|
* represents a node in a linked list. It contains a key-value pair and references to the previous
|
|
307
307
|
* and next nodes in the list.
|
|
308
308
|
*/
|
|
309
|
-
protected _deleteNode(node: HashMapLinkedNode<K, V | undefined>):
|
|
309
|
+
protected _deleteNode(node: HashMapLinkedNode<K, V | undefined>): boolean;
|
|
310
310
|
}
|
|
@@ -64,6 +64,7 @@ export class HashMap extends IterableEntryBase {
|
|
|
64
64
|
}
|
|
65
65
|
this._store[strKey] = { key, value };
|
|
66
66
|
}
|
|
67
|
+
return true;
|
|
67
68
|
}
|
|
68
69
|
/**
|
|
69
70
|
* The function "setMany" sets multiple key-value pairs in a map.
|
|
@@ -71,8 +72,10 @@ export class HashMap extends IterableEntryBase {
|
|
|
71
72
|
* key-value pair is represented as an array with two elements: the key and the value.
|
|
72
73
|
*/
|
|
73
74
|
setMany(elements) {
|
|
75
|
+
const results = [];
|
|
74
76
|
for (const [key, value] of elements)
|
|
75
|
-
this.set(key, value);
|
|
77
|
+
results.push(this.set(key, value));
|
|
78
|
+
return results;
|
|
76
79
|
}
|
|
77
80
|
/**
|
|
78
81
|
* The `get` function retrieves a value from a map based on a given key, either from an object map or
|
|
@@ -189,6 +192,9 @@ export class HashMap extends IterableEntryBase {
|
|
|
189
192
|
print() {
|
|
190
193
|
console.log([...this.entries()]);
|
|
191
194
|
}
|
|
195
|
+
put(key, value) {
|
|
196
|
+
return this.set(key, value);
|
|
197
|
+
}
|
|
192
198
|
/**
|
|
193
199
|
* The function returns an iterator that yields key-value pairs from both an object store and an
|
|
194
200
|
* object map.
|
|
@@ -357,7 +363,7 @@ export class LinkedHashMap extends IterableEntryBase {
|
|
|
357
363
|
this._sentinel.prev = node;
|
|
358
364
|
this._size++;
|
|
359
365
|
}
|
|
360
|
-
return
|
|
366
|
+
return true;
|
|
361
367
|
}
|
|
362
368
|
has(key) {
|
|
363
369
|
if (isWeakKey(key)) {
|
|
@@ -369,18 +375,13 @@ export class LinkedHashMap extends IterableEntryBase {
|
|
|
369
375
|
return hash in this._noObjMap;
|
|
370
376
|
}
|
|
371
377
|
}
|
|
372
|
-
hasValue(value) {
|
|
373
|
-
for (const [, elementValue] of this) {
|
|
374
|
-
if (elementValue === value)
|
|
375
|
-
return true;
|
|
376
|
-
}
|
|
377
|
-
return false;
|
|
378
|
-
}
|
|
379
378
|
setMany(entries) {
|
|
379
|
+
const results = [];
|
|
380
380
|
for (const entry of entries) {
|
|
381
381
|
const [key, value] = entry;
|
|
382
|
-
this.set(key, value);
|
|
382
|
+
results.push(this.set(key, value));
|
|
383
383
|
}
|
|
384
|
+
return results;
|
|
384
385
|
}
|
|
385
386
|
/**
|
|
386
387
|
* Time Complexity: O(1)
|
|
@@ -424,7 +425,7 @@ export class LinkedHashMap extends IterableEntryBase {
|
|
|
424
425
|
while (index--) {
|
|
425
426
|
node = node.next;
|
|
426
427
|
}
|
|
427
|
-
return
|
|
428
|
+
return node.value;
|
|
428
429
|
}
|
|
429
430
|
/**
|
|
430
431
|
* Time Complexity: O(1)
|
|
@@ -477,8 +478,7 @@ export class LinkedHashMap extends IterableEntryBase {
|
|
|
477
478
|
while (index--) {
|
|
478
479
|
node = node.next;
|
|
479
480
|
}
|
|
480
|
-
this._deleteNode(node);
|
|
481
|
-
return this._size;
|
|
481
|
+
return this._deleteNode(node);
|
|
482
482
|
}
|
|
483
483
|
/**
|
|
484
484
|
* Time Complexity: O(1)
|
|
@@ -571,8 +571,8 @@ export class LinkedHashMap extends IterableEntryBase {
|
|
|
571
571
|
}
|
|
572
572
|
return mappedMap;
|
|
573
573
|
}
|
|
574
|
-
|
|
575
|
-
|
|
574
|
+
put(key, value) {
|
|
575
|
+
return this.set(key, value);
|
|
576
576
|
}
|
|
577
577
|
/**
|
|
578
578
|
* Time Complexity: O(n), where n is the number of elements in the LinkedHashMap.
|
|
@@ -608,5 +608,6 @@ export class LinkedHashMap extends IterableEntryBase {
|
|
|
608
608
|
this._tail = prev;
|
|
609
609
|
}
|
|
610
610
|
this._size -= 1;
|
|
611
|
+
return true;
|
|
611
612
|
}
|
|
612
613
|
}
|
|
@@ -52,19 +52,7 @@ export declare class Heap<E = any> extends IterableElementBase<E> {
|
|
|
52
52
|
* Insert an element into the heap and maintain the heap properties.
|
|
53
53
|
* @param element - The element to be inserted.
|
|
54
54
|
*/
|
|
55
|
-
add(element: E):
|
|
56
|
-
/**
|
|
57
|
-
* Time Complexity: O(log n), where n is the number of elements in the heap.
|
|
58
|
-
* Space Complexity: O(1)
|
|
59
|
-
*/
|
|
60
|
-
/**
|
|
61
|
-
* Time Complexity: O(log n), where n is the number of elements in the heap.
|
|
62
|
-
* Space Complexity: O(1)
|
|
63
|
-
*
|
|
64
|
-
* Insert an element into the heap and maintain the heap properties.
|
|
65
|
-
* @param element - The element to be inserted.
|
|
66
|
-
*/
|
|
67
|
-
push(element: E): Heap<E>;
|
|
55
|
+
add(element: E): boolean;
|
|
68
56
|
/**
|
|
69
57
|
* Time Complexity: O(log n), where n is the number of elements in the heap.
|
|
70
58
|
* Space Complexity: O(1)
|
|
@@ -77,18 +65,6 @@ export declare class Heap<E = any> extends IterableElementBase<E> {
|
|
|
77
65
|
* @returns The top element or undefined if the heap is empty.
|
|
78
66
|
*/
|
|
79
67
|
poll(): E | undefined;
|
|
80
|
-
/**
|
|
81
|
-
* Time Complexity: O(log n), where n is the number of elements in the heap.
|
|
82
|
-
* Space Complexity: O(1)
|
|
83
|
-
*/
|
|
84
|
-
/**
|
|
85
|
-
* Time Complexity: O(log n), where n is the number of elements in the heap.
|
|
86
|
-
* Space Complexity: O(1)
|
|
87
|
-
*
|
|
88
|
-
* Remove and return the top element (smallest or largest element) from the heap.
|
|
89
|
-
* @returns The top element or undefined if the heap is empty.
|
|
90
|
-
*/
|
|
91
|
-
pop(): E | undefined;
|
|
92
68
|
/**
|
|
93
69
|
* Peek at the top element of the heap without removing it.
|
|
94
70
|
* @returns The top element or undefined if the heap is empty.
|
|
@@ -114,7 +90,7 @@ export declare class Heap<E = any> extends IterableElementBase<E> {
|
|
|
114
90
|
* Clear and add elements of the heap
|
|
115
91
|
* @param elements
|
|
116
92
|
*/
|
|
117
|
-
refill(elements: E[]):
|
|
93
|
+
refill(elements: E[]): boolean[];
|
|
118
94
|
/**
|
|
119
95
|
* Time Complexity: O(n), where n is the number of elements in the heap.
|
|
120
96
|
* Space Complexity: O(1)
|
|
@@ -203,7 +179,7 @@ export declare class Heap<E = any> extends IterableElementBase<E> {
|
|
|
203
179
|
*
|
|
204
180
|
* Fix the entire heap to maintain heap properties.
|
|
205
181
|
*/
|
|
206
|
-
fix():
|
|
182
|
+
fix(): boolean[];
|
|
207
183
|
/**
|
|
208
184
|
* Time Complexity: O(n)
|
|
209
185
|
* Space Complexity: O(n)
|
|
@@ -250,12 +226,7 @@ export declare class Heap<E = any> extends IterableElementBase<E> {
|
|
|
250
226
|
* original Heap.
|
|
251
227
|
*/
|
|
252
228
|
map<T>(callback: ElementCallback<E, T>, comparator: Comparator<T>, thisArg?: any): Heap<T>;
|
|
253
|
-
|
|
254
|
-
* Time Complexity: O(log n)
|
|
255
|
-
* Space Complexity: O(1)
|
|
256
|
-
*/
|
|
257
|
-
print(): void;
|
|
258
|
-
protected _getIterator(): Generator<E, void, unknown>;
|
|
229
|
+
protected _getIterator(): IterableIterator<E>;
|
|
259
230
|
/**
|
|
260
231
|
* Time Complexity: O(n)
|
|
261
232
|
* Space Complexity: O(1)
|
|
@@ -267,7 +238,7 @@ export declare class Heap<E = any> extends IterableElementBase<E> {
|
|
|
267
238
|
* Float operation to maintain heap properties after adding an element.
|
|
268
239
|
* @param index - The index of the newly added element.
|
|
269
240
|
*/
|
|
270
|
-
protected _bubbleUp(index: number):
|
|
241
|
+
protected _bubbleUp(index: number): boolean;
|
|
271
242
|
/**
|
|
272
243
|
* Time Complexity: O(log n)
|
|
273
244
|
* Space Complexity: O(1)
|
|
@@ -276,7 +247,7 @@ export declare class Heap<E = any> extends IterableElementBase<E> {
|
|
|
276
247
|
* @param index - The index from which to start sinking.
|
|
277
248
|
* @param halfLength
|
|
278
249
|
*/
|
|
279
|
-
protected _sinkDown(index: number, halfLength: number):
|
|
250
|
+
protected _sinkDown(index: number, halfLength: number): boolean;
|
|
280
251
|
}
|
|
281
252
|
export declare class FibonacciHeapNode<E> {
|
|
282
253
|
element: E;
|
|
@@ -39,7 +39,7 @@ export class Heap extends IterableElementBase {
|
|
|
39
39
|
}
|
|
40
40
|
if (elements) {
|
|
41
41
|
for (const el of elements) {
|
|
42
|
-
this.
|
|
42
|
+
this.add(el);
|
|
43
43
|
}
|
|
44
44
|
// this.fix();
|
|
45
45
|
}
|
|
@@ -82,23 +82,8 @@ export class Heap extends IterableElementBase {
|
|
|
82
82
|
* @param element - The element to be inserted.
|
|
83
83
|
*/
|
|
84
84
|
add(element) {
|
|
85
|
-
return this.push(element);
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Time Complexity: O(log n), where n is the number of elements in the heap.
|
|
89
|
-
* Space Complexity: O(1)
|
|
90
|
-
*/
|
|
91
|
-
/**
|
|
92
|
-
* Time Complexity: O(log n), where n is the number of elements in the heap.
|
|
93
|
-
* Space Complexity: O(1)
|
|
94
|
-
*
|
|
95
|
-
* Insert an element into the heap and maintain the heap properties.
|
|
96
|
-
* @param element - The element to be inserted.
|
|
97
|
-
*/
|
|
98
|
-
push(element) {
|
|
99
85
|
this._elements.push(element);
|
|
100
|
-
this._bubbleUp(this.elements.length - 1);
|
|
101
|
-
return this;
|
|
86
|
+
return this._bubbleUp(this.elements.length - 1);
|
|
102
87
|
}
|
|
103
88
|
/**
|
|
104
89
|
* Time Complexity: O(log n), where n is the number of elements in the heap.
|
|
@@ -122,20 +107,6 @@ export class Heap extends IterableElementBase {
|
|
|
122
107
|
}
|
|
123
108
|
return value;
|
|
124
109
|
}
|
|
125
|
-
/**
|
|
126
|
-
* Time Complexity: O(log n), where n is the number of elements in the heap.
|
|
127
|
-
* Space Complexity: O(1)
|
|
128
|
-
*/
|
|
129
|
-
/**
|
|
130
|
-
* Time Complexity: O(log n), where n is the number of elements in the heap.
|
|
131
|
-
* Space Complexity: O(1)
|
|
132
|
-
*
|
|
133
|
-
* Remove and return the top element (smallest or largest element) from the heap.
|
|
134
|
-
* @returns The top element or undefined if the heap is empty.
|
|
135
|
-
*/
|
|
136
|
-
pop() {
|
|
137
|
-
return this.poll();
|
|
138
|
-
}
|
|
139
110
|
/**
|
|
140
111
|
* Peek at the top element of the heap without removing it.
|
|
141
112
|
* @returns The top element or undefined if the heap is empty.
|
|
@@ -169,7 +140,7 @@ export class Heap extends IterableElementBase {
|
|
|
169
140
|
*/
|
|
170
141
|
refill(elements) {
|
|
171
142
|
this._elements = elements;
|
|
172
|
-
this.fix();
|
|
143
|
+
return this.fix();
|
|
173
144
|
}
|
|
174
145
|
/**
|
|
175
146
|
* Time Complexity: O(n), where n is the number of elements in the heap.
|
|
@@ -206,7 +177,7 @@ export class Heap extends IterableElementBase {
|
|
|
206
177
|
if (index < 0)
|
|
207
178
|
return false;
|
|
208
179
|
if (index === 0) {
|
|
209
|
-
this.
|
|
180
|
+
this.poll();
|
|
210
181
|
}
|
|
211
182
|
else if (index === this.elements.length - 1) {
|
|
212
183
|
this.elements.pop();
|
|
@@ -318,8 +289,10 @@ export class Heap extends IterableElementBase {
|
|
|
318
289
|
* Fix the entire heap to maintain heap properties.
|
|
319
290
|
*/
|
|
320
291
|
fix() {
|
|
292
|
+
const results = [];
|
|
321
293
|
for (let i = Math.floor(this.size / 2); i >= 0; i--)
|
|
322
|
-
this._sinkDown(i, this.elements.length >> 1);
|
|
294
|
+
results.push(this._sinkDown(i, this.elements.length >> 1));
|
|
295
|
+
return results;
|
|
323
296
|
}
|
|
324
297
|
/**
|
|
325
298
|
* Time Complexity: O(n)
|
|
@@ -346,7 +319,7 @@ export class Heap extends IterableElementBase {
|
|
|
346
319
|
let index = 0;
|
|
347
320
|
for (const current of this) {
|
|
348
321
|
if (callback.call(thisArg, current, index, this)) {
|
|
349
|
-
filteredList.
|
|
322
|
+
filteredList.add(current);
|
|
350
323
|
}
|
|
351
324
|
index++;
|
|
352
325
|
}
|
|
@@ -385,13 +358,6 @@ export class Heap extends IterableElementBase {
|
|
|
385
358
|
}
|
|
386
359
|
return mappedHeap;
|
|
387
360
|
}
|
|
388
|
-
/**
|
|
389
|
-
* Time Complexity: O(log n)
|
|
390
|
-
* Space Complexity: O(1)
|
|
391
|
-
*/
|
|
392
|
-
print() {
|
|
393
|
-
console.log([...this]);
|
|
394
|
-
}
|
|
395
361
|
*_getIterator() {
|
|
396
362
|
for (const element of this.elements) {
|
|
397
363
|
yield element;
|
|
@@ -419,6 +385,7 @@ export class Heap extends IterableElementBase {
|
|
|
419
385
|
index = parent;
|
|
420
386
|
}
|
|
421
387
|
this.elements[index] = element;
|
|
388
|
+
return true;
|
|
422
389
|
}
|
|
423
390
|
/**
|
|
424
391
|
* Time Complexity: O(log n)
|
|
@@ -445,6 +412,7 @@ export class Heap extends IterableElementBase {
|
|
|
445
412
|
index = left;
|
|
446
413
|
}
|
|
447
414
|
this.elements[index] = element;
|
|
415
|
+
return true;
|
|
448
416
|
}
|
|
449
417
|
}
|
|
450
418
|
export class FibonacciHeapNode {
|