tree-multimap-typed 2.2.0 → 2.2.1
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/dist/cjs/index.cjs +9 -9
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs-legacy/index.cjs +9 -9
- package/dist/cjs-legacy/index.cjs.map +1 -1
- package/dist/esm/index.mjs +9 -9
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm-legacy/index.mjs +9 -9
- package/dist/esm-legacy/index.mjs.map +1 -1
- package/dist/types/data-structures/binary-tree/avl-tree.d.ts +3 -1
- package/dist/types/data-structures/binary-tree/binary-tree.d.ts +1 -0
- package/dist/types/data-structures/binary-tree/bst.d.ts +1 -0
- package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +1 -0
- package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +1 -0
- package/dist/types/types/data-structures/base/base.d.ts +1 -1
- package/dist/umd/tree-multimap-typed.js +9 -9
- package/dist/umd/tree-multimap-typed.js.map +1 -1
- package/dist/umd/tree-multimap-typed.min.js +2 -2
- package/dist/umd/tree-multimap-typed.min.js.map +1 -1
- package/package.json +2 -2
- package/src/data-structures/base/iterable-entry-base.ts +4 -4
- package/src/data-structures/binary-tree/avl-tree-counter.ts +1 -1
- package/src/data-structures/binary-tree/avl-tree-multi-map.ts +1 -1
- package/src/data-structures/binary-tree/avl-tree.ts +4 -2
- package/src/data-structures/binary-tree/binary-tree.ts +3 -2
- package/src/data-structures/binary-tree/bst.ts +2 -1
- package/src/data-structures/binary-tree/red-black-tree.ts +2 -1
- package/src/data-structures/binary-tree/tree-counter.ts +1 -1
- package/src/data-structures/binary-tree/tree-multi-map.ts +2 -1
- package/src/data-structures/graph/abstract-graph.ts +3 -3
- package/src/data-structures/hash/hash-map.ts +4 -4
- package/src/types/data-structures/base/base.ts +1 -1
|
@@ -125,7 +125,9 @@ export declare class AVLTreeNode<K = any, V = any> {
|
|
|
125
125
|
* 4. Order Preservation: Maintains the binary search tree property where left child values are less than the parent, and right child values are greater.
|
|
126
126
|
* 5. Efficient Lookups: Offers O(log n) search time, where 'n' is the number of nodes, due to its balanced nature.
|
|
127
127
|
* 6. Complex Insertions and Deletions: Due to rebalancing, these operations are more complex than in a regular BST.
|
|
128
|
-
* 7. Path Length: The path length from the root to any leaf is longer compared to an unbalanced BST, but shorter than a linear chain of nodes
|
|
128
|
+
* 7. Path Length: The path length from the root to any leaf is longer compared to an unbalanced BST, but shorter than a linear chain of nodes.
|
|
129
|
+
*
|
|
130
|
+
* @example
|
|
129
131
|
* // Find elements in a range
|
|
130
132
|
* // In interval queries, AVL trees, with their strictly balanced structure and lower height, offer better query efficiency, making them ideal for frequent and high-performance interval queries. In contrast, Red-Black trees, with lower update costs, are more suitable for scenarios involving frequent insertions and deletions where the requirements for interval queries are less demanding.
|
|
131
133
|
* type Datum = { timestamp: Date; temperature: number };
|
|
@@ -123,6 +123,7 @@ export declare class BinaryTreeNode<K = any, V = any> {
|
|
|
123
123
|
* 3. Depth and Height: Depth is the number of edges from the root to a node; height is the maximum depth in the tree.
|
|
124
124
|
* 4. Subtrees: Each child of a node forms the root of a subtree.
|
|
125
125
|
* 5. Leaf Nodes: Nodes without children are leaves.
|
|
126
|
+
*
|
|
126
127
|
* @example
|
|
127
128
|
* // determine loan approval using a decision tree
|
|
128
129
|
* // Decision tree structure
|
|
@@ -124,6 +124,7 @@ export declare class BSTNode<K = any, V = any> {
|
|
|
124
124
|
* 5. Logarithmic Operations: Ideal operations like insertion, deletion, and searching are O(log n) time-efficient.
|
|
125
125
|
* 6. Balance Variability: Can become unbalanced; special types maintain balance.
|
|
126
126
|
* 7. No Auto-Balancing: Standard BSTs don't automatically balance themselves.
|
|
127
|
+
*
|
|
127
128
|
* @example
|
|
128
129
|
* // Merge 3 sorted datasets
|
|
129
130
|
* const dataset1 = new BST<number, string>([
|
|
@@ -110,6 +110,7 @@ export declare class RedBlackTreeNode<K = any, V = any> {
|
|
|
110
110
|
* @template R
|
|
111
111
|
* 1. Efficient self-balancing, but not completely balanced. Compared with AVLTree, the addition and deletion efficiency is high, but the query efficiency is slightly lower.
|
|
112
112
|
* 2. It is BST itself. Compared with Heap which is not completely ordered, RedBlackTree is completely ordered.
|
|
113
|
+
*
|
|
113
114
|
* @example
|
|
114
115
|
* // using Red-Black Tree as a price-based index for stock data
|
|
115
116
|
* // Define the structure of individual stock records
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { IterableElementBase, IterableEntryBase } from '../../../data-structures';
|
|
2
2
|
import { LinearBase } from '../../../data-structures/base/linear-base';
|
|
3
|
-
export type EntryCallback<K, V, R> = (
|
|
3
|
+
export type EntryCallback<K, V, R> = (value: V, key: K, index: number, original: IterableEntryBase<K, V>) => R;
|
|
4
4
|
export type ElementCallback<E, R, RT> = (element: E, index: number, original: IterableElementBase<E, R>) => RT;
|
|
5
5
|
export type ReduceEntryCallback<K, V, R> = (accumulator: R, value: V, key: K, index: number, original: IterableEntryBase<K, V>) => R;
|
|
6
6
|
export type ReduceElementCallback<E, R, U = E> = (accumulator: U, value: E, index: number, self: IterableElementBase<E, R>) => U;
|
|
@@ -913,7 +913,7 @@ var treeMultimapTyped = (() => {
|
|
|
913
913
|
every(predicate, thisArg) {
|
|
914
914
|
let index = 0;
|
|
915
915
|
for (const item of this) {
|
|
916
|
-
if (!predicate.call(thisArg, item[
|
|
916
|
+
if (!predicate.call(thisArg, item[1], item[0], index++, this)) {
|
|
917
917
|
return false;
|
|
918
918
|
}
|
|
919
919
|
}
|
|
@@ -929,7 +929,7 @@ var treeMultimapTyped = (() => {
|
|
|
929
929
|
some(predicate, thisArg) {
|
|
930
930
|
let index = 0;
|
|
931
931
|
for (const item of this) {
|
|
932
|
-
if (predicate.call(thisArg, item[
|
|
932
|
+
if (predicate.call(thisArg, item[1], item[0], index++, this)) {
|
|
933
933
|
return true;
|
|
934
934
|
}
|
|
935
935
|
}
|
|
@@ -945,7 +945,7 @@ var treeMultimapTyped = (() => {
|
|
|
945
945
|
let index = 0;
|
|
946
946
|
for (const item of this) {
|
|
947
947
|
const [key, value] = item;
|
|
948
|
-
callbackfn.call(thisArg,
|
|
948
|
+
callbackfn.call(thisArg, value, key, index++, this);
|
|
949
949
|
}
|
|
950
950
|
}
|
|
951
951
|
/**
|
|
@@ -959,7 +959,7 @@ var treeMultimapTyped = (() => {
|
|
|
959
959
|
let index = 0;
|
|
960
960
|
for (const item of this) {
|
|
961
961
|
const [key, value] = item;
|
|
962
|
-
if (callbackfn.call(thisArg,
|
|
962
|
+
if (callbackfn.call(thisArg, value, key, index++, this)) return item;
|
|
963
963
|
}
|
|
964
964
|
return;
|
|
965
965
|
}
|
|
@@ -2210,7 +2210,7 @@ var treeMultimapTyped = (() => {
|
|
|
2210
2210
|
filter(predicate, thisArg) {
|
|
2211
2211
|
const out = this._createInstance();
|
|
2212
2212
|
let i = 0;
|
|
2213
|
-
for (const [k, v] of this) if (predicate.call(thisArg,
|
|
2213
|
+
for (const [k, v] of this) if (predicate.call(thisArg, v, k, i++, this)) out.add([k, v]);
|
|
2214
2214
|
return out;
|
|
2215
2215
|
}
|
|
2216
2216
|
/**
|
|
@@ -2228,7 +2228,7 @@ var treeMultimapTyped = (() => {
|
|
|
2228
2228
|
map(cb, options, thisArg) {
|
|
2229
2229
|
const out = this._createLike([], options);
|
|
2230
2230
|
let i = 0;
|
|
2231
|
-
for (const [k, v] of this) out.add(cb.call(thisArg,
|
|
2231
|
+
for (const [k, v] of this) out.add(cb.call(thisArg, v, k, i++, this));
|
|
2232
2232
|
return out;
|
|
2233
2233
|
}
|
|
2234
2234
|
/**
|
|
@@ -3324,7 +3324,7 @@ var treeMultimapTyped = (() => {
|
|
|
3324
3324
|
const out = this._createLike([], options);
|
|
3325
3325
|
let index = 0;
|
|
3326
3326
|
for (const [key, value] of this) {
|
|
3327
|
-
out.add(callback.call(thisArg,
|
|
3327
|
+
out.add(callback.call(thisArg, value, key, index++, this));
|
|
3328
3328
|
}
|
|
3329
3329
|
return out;
|
|
3330
3330
|
}
|
|
@@ -3762,7 +3762,7 @@ var treeMultimapTyped = (() => {
|
|
|
3762
3762
|
const out = this._createLike([], options);
|
|
3763
3763
|
let index = 0;
|
|
3764
3764
|
for (const [key, value] of this) {
|
|
3765
|
-
out.add(callback.call(thisArg,
|
|
3765
|
+
out.add(callback.call(thisArg, value, key, index++, this));
|
|
3766
3766
|
}
|
|
3767
3767
|
return out;
|
|
3768
3768
|
}
|
|
@@ -4244,7 +4244,7 @@ var treeMultimapTyped = (() => {
|
|
|
4244
4244
|
map(callback, options, thisArg) {
|
|
4245
4245
|
const out = this._createLike([], options);
|
|
4246
4246
|
let i = 0;
|
|
4247
|
-
for (const [k, v] of this) out.add(callback.call(thisArg,
|
|
4247
|
+
for (const [k, v] of this) out.add(callback.call(thisArg, v, k, i++, this));
|
|
4248
4248
|
return out;
|
|
4249
4249
|
}
|
|
4250
4250
|
/**
|