data-structure-typed 1.54.1 → 1.54.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.
- package/CHANGELOG.md +1 -1
- package/LICENSE +2 -2
- package/README.md +14 -1
- package/README_zh-CN.md +1 -1
- package/benchmark/report.html +4 -1
- package/benchmark/report.json +76 -17
- package/dist/cjs/data-structures/binary-tree/avl-tree-counter.d.ts +21 -20
- package/dist/cjs/data-structures/binary-tree/avl-tree-counter.js +8 -7
- package/dist/cjs/data-structures/binary-tree/avl-tree-counter.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.d.ts +12 -12
- package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.js +2 -2
- 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 +25 -21
- package/dist/cjs/data-structures/binary-tree/avl-tree.js +12 -8
- package/dist/cjs/data-structures/binary-tree/avl-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/binary-tree.d.ts +111 -225
- package/dist/cjs/data-structures/binary-tree/binary-tree.js +177 -144
- package/dist/cjs/data-structures/binary-tree/binary-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/bst.d.ts +59 -53
- package/dist/cjs/data-structures/binary-tree/bst.js +75 -119
- package/dist/cjs/data-structures/binary-tree/bst.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/red-black-tree.d.ts +18 -18
- package/dist/cjs/data-structures/binary-tree/red-black-tree.js +6 -6
- package/dist/cjs/data-structures/binary-tree/red-black-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/tree-counter.d.ts +19 -19
- package/dist/cjs/data-structures/binary-tree/tree-counter.js +12 -12
- package/dist/cjs/data-structures/binary-tree/tree-counter.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/tree-multi-map.d.ts +12 -12
- package/dist/cjs/data-structures/binary-tree/tree-multi-map.js +2 -2
- package/dist/cjs/data-structures/binary-tree/tree-multi-map.js.map +1 -1
- package/dist/cjs/types/data-structures/binary-tree/binary-tree.d.ts +1 -0
- package/dist/cjs/types/data-structures/binary-tree/bst.d.ts +1 -1
- package/dist/cjs/types/data-structures/binary-tree/index.d.ts +1 -1
- package/dist/cjs/types/data-structures/binary-tree/index.js +1 -1
- package/dist/cjs/types/data-structures/binary-tree/index.js.map +1 -1
- package/dist/cjs/types/data-structures/binary-tree/{rb-tree.js → red-black-tree.js} +1 -1
- package/dist/cjs/types/data-structures/binary-tree/red-black-tree.js.map +1 -0
- package/dist/cjs/types/data-structures/binary-tree/tree-counter.d.ts +1 -1
- package/dist/cjs/types/data-structures/binary-tree/tree-multi-map.d.ts +1 -1
- package/dist/cjs/utils/utils.d.ts +2 -2
- package/dist/esm/data-structures/binary-tree/avl-tree-counter.d.ts +21 -20
- package/dist/esm/data-structures/binary-tree/avl-tree-counter.js +9 -8
- package/dist/esm/data-structures/binary-tree/avl-tree-counter.js.map +1 -1
- package/dist/esm/data-structures/binary-tree/avl-tree-multi-map.d.ts +12 -12
- package/dist/esm/data-structures/binary-tree/avl-tree-multi-map.js +3 -3
- package/dist/esm/data-structures/binary-tree/avl-tree-multi-map.js.map +1 -1
- package/dist/esm/data-structures/binary-tree/avl-tree.d.ts +25 -21
- package/dist/esm/data-structures/binary-tree/avl-tree.js +13 -9
- package/dist/esm/data-structures/binary-tree/avl-tree.js.map +1 -1
- package/dist/esm/data-structures/binary-tree/binary-tree.d.ts +111 -225
- package/dist/esm/data-structures/binary-tree/binary-tree.js +181 -148
- package/dist/esm/data-structures/binary-tree/binary-tree.js.map +1 -1
- package/dist/esm/data-structures/binary-tree/bst.d.ts +59 -53
- package/dist/esm/data-structures/binary-tree/bst.js +76 -120
- package/dist/esm/data-structures/binary-tree/bst.js.map +1 -1
- package/dist/esm/data-structures/binary-tree/red-black-tree.d.ts +18 -18
- package/dist/esm/data-structures/binary-tree/red-black-tree.js +7 -7
- package/dist/esm/data-structures/binary-tree/red-black-tree.js.map +1 -1
- package/dist/esm/data-structures/binary-tree/tree-counter.d.ts +19 -19
- package/dist/esm/data-structures/binary-tree/tree-counter.js +13 -13
- package/dist/esm/data-structures/binary-tree/tree-counter.js.map +1 -1
- package/dist/esm/data-structures/binary-tree/tree-multi-map.d.ts +12 -12
- package/dist/esm/data-structures/binary-tree/tree-multi-map.js +3 -3
- package/dist/esm/data-structures/binary-tree/tree-multi-map.js.map +1 -1
- package/dist/esm/types/data-structures/binary-tree/binary-tree.d.ts +1 -0
- package/dist/esm/types/data-structures/binary-tree/bst.d.ts +1 -1
- package/dist/esm/types/data-structures/binary-tree/index.d.ts +1 -1
- package/dist/esm/types/data-structures/binary-tree/index.js +1 -1
- package/dist/esm/types/data-structures/binary-tree/index.js.map +1 -1
- package/dist/esm/types/data-structures/binary-tree/red-black-tree.js +2 -0
- package/dist/esm/types/data-structures/binary-tree/red-black-tree.js.map +1 -0
- package/dist/esm/types/data-structures/binary-tree/tree-counter.d.ts +1 -1
- package/dist/esm/types/data-structures/binary-tree/tree-multi-map.d.ts +1 -1
- package/dist/esm/utils/utils.d.ts +2 -2
- package/dist/umd/data-structure-typed.js +296 -279
- package/dist/umd/data-structure-typed.min.js +5 -12
- package/dist/umd/data-structure-typed.min.js.map +1 -1
- package/package.json +9 -14
- package/src/data-structures/binary-tree/avl-tree-counter.ts +30 -23
- package/src/data-structures/binary-tree/avl-tree-multi-map.ts +25 -15
- package/src/data-structures/binary-tree/avl-tree.ts +35 -29
- package/src/data-structures/binary-tree/binary-tree.ts +469 -252
- package/src/data-structures/binary-tree/bst.ts +141 -143
- package/src/data-structures/binary-tree/red-black-tree.ts +27 -35
- package/src/data-structures/binary-tree/tree-counter.ts +33 -27
- package/src/data-structures/binary-tree/tree-multi-map.ts +25 -17
- package/src/types/data-structures/binary-tree/binary-tree.ts +1 -0
- package/src/types/data-structures/binary-tree/bst.ts +1 -1
- package/src/types/data-structures/binary-tree/index.ts +1 -1
- package/src/types/data-structures/binary-tree/tree-counter.ts +1 -1
- package/src/types/data-structures/binary-tree/tree-multi-map.ts +1 -1
- package/src/utils/utils.ts +2 -2
- package/test/integration/compile.mjs +135 -0
- package/test/performance/data-structures/binary-tree/avl-tree.test.mjs +71 -0
- package/test/performance/data-structures/binary-tree/red-black-tree.test.mjs +81 -0
- package/test/performance/reportor.mjs +505 -0
- package/test/performance/reportor.ts +1 -1
- package/test/unit/data-structures/binary-tree/avl-tree-counter.test.ts +7 -7
- package/test/unit/data-structures/binary-tree/avl-tree-multi-map.test.ts +5 -6
- package/test/unit/data-structures/binary-tree/avl-tree.test.ts +72 -5
- package/test/unit/data-structures/binary-tree/binary-tree.test.ts +132 -82
- package/test/unit/data-structures/binary-tree/bst.test.ts +12 -12
- package/test/unit/data-structures/binary-tree/red-black-tree.test.ts +4 -12
- package/test/unit/data-structures/binary-tree/tree-counter.test.ts +4 -4
- package/test/unit/data-structures/binary-tree/tree-multi-map.test.ts +6 -6
- package/test/utils/json2html.ts +0 -154
- package/dist/cjs/types/data-structures/binary-tree/rb-tree.js.map +0 -1
- package/dist/esm/types/data-structures/binary-tree/rb-tree.js +0 -2
- package/dist/esm/types/data-structures/binary-tree/rb-tree.js.map +0 -1
- /package/dist/cjs/types/data-structures/binary-tree/{rb-tree.d.ts → red-black-tree.d.ts} +0 -0
- /package/dist/esm/types/data-structures/binary-tree/{rb-tree.d.ts → red-black-tree.d.ts} +0 -0
- /package/src/types/data-structures/binary-tree/{rb-tree.ts → red-black-tree.ts} +0 -0
- /package/test/performance/data-structures/binary-tree/{rb-tree.test.ts → red-black-tree.test.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"red-black-tree.js","sourceRoot":"","sources":["../../../../src/data-structures/binary-tree/red-black-tree.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"red-black-tree.js","sourceRoot":"","sources":["../../../../src/data-structures/binary-tree/red-black-tree.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,10 +5,11 @@
|
|
|
5
5
|
* @copyright Copyright (c) 2022 Pablo Zeng <zrwusa@gmail.com>
|
|
6
6
|
* @license MIT License
|
|
7
7
|
*/
|
|
8
|
-
import type { BinaryTreeDeleteResult, BSTNOptKeyOrNode,
|
|
8
|
+
import type { BinaryTreeDeleteResult, BSTNOptKeyOrNode, EntryCallback, IterationType, RBTNColor, TreeCounterOptions } from '../../types';
|
|
9
9
|
import { IBinaryTree } from '../../interfaces';
|
|
10
10
|
import { RedBlackTree, RedBlackTreeNode } from './red-black-tree';
|
|
11
11
|
export declare class TreeCounterNode<K = any, V = any> extends RedBlackTreeNode<K, V> {
|
|
12
|
+
parent?: TreeCounterNode<K, V>;
|
|
12
13
|
/**
|
|
13
14
|
* The constructor function initializes a Red-Black Tree node with a key, value, count, and color.
|
|
14
15
|
* @param {K} key - The key parameter represents the key of the node in the Red-Black Tree. It is
|
|
@@ -22,13 +23,12 @@ export declare class TreeCounterNode<K = any, V = any> extends RedBlackTreeNode<
|
|
|
22
23
|
* in a Red-Black Tree. It is optional and has a default value of `'BLACK'`.
|
|
23
24
|
*/
|
|
24
25
|
constructor(key: K, value?: V, count?: number, color?: RBTNColor);
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
set right(v: OptNodeOrNull<TreeCounterNode<K, V>>);
|
|
26
|
+
_left?: TreeCounterNode<K, V> | null | undefined;
|
|
27
|
+
get left(): TreeCounterNode<K, V> | null | undefined;
|
|
28
|
+
set left(v: TreeCounterNode<K, V> | null | undefined);
|
|
29
|
+
_right?: TreeCounterNode<K, V> | null | undefined;
|
|
30
|
+
get right(): TreeCounterNode<K, V> | null | undefined;
|
|
31
|
+
set right(v: TreeCounterNode<K, V> | null | undefined);
|
|
32
32
|
}
|
|
33
33
|
/**
|
|
34
34
|
*
|
|
@@ -43,7 +43,7 @@ export declare class TreeCounter<K = any, V = any, R = object, MK = any, MV = an
|
|
|
43
43
|
* behavior of the `TreeCounter` constructor. It can include properties such as `compareKeys` and
|
|
44
44
|
* `compareValues`, which are functions used to compare keys and values respectively.
|
|
45
45
|
*/
|
|
46
|
-
constructor(keysNodesEntriesOrRaws?: Iterable<
|
|
46
|
+
constructor(keysNodesEntriesOrRaws?: Iterable<K | TreeCounterNode<K, V> | [K | null | undefined, V | undefined] | null | undefined | R>, options?: TreeCounterOptions<K, V, R>);
|
|
47
47
|
protected _count: number;
|
|
48
48
|
/**
|
|
49
49
|
* The function calculates the sum of the count property of all nodes in a tree structure.
|
|
@@ -84,19 +84,19 @@ export declare class TreeCounter<K = any, V = any, R = object, MK = any, MV = an
|
|
|
84
84
|
createTree(options?: TreeCounterOptions<K, V, R>): TreeCounter<K, V, R, MK, MV, MR>;
|
|
85
85
|
/**
|
|
86
86
|
* The function checks if the input is an instance of the TreeCounterNode class.
|
|
87
|
-
* @param {
|
|
88
|
-
* `keyNodeOrEntry` can be of type `R` or `
|
|
87
|
+
* @param {K | TreeCounterNode<K, V> | [K | null | undefined, V | undefined] | null | undefined} keyNodeOrEntry - The parameter
|
|
88
|
+
* `keyNodeOrEntry` can be of type `R` or `K | TreeCounterNode<K, V> | [K | null | undefined, V | undefined] | null | undefined`.
|
|
89
89
|
* @returns a boolean value indicating whether the input parameter `keyNodeOrEntry` is
|
|
90
90
|
* an instance of the `TreeCounterNode` class.
|
|
91
91
|
*/
|
|
92
|
-
isNode(keyNodeOrEntry:
|
|
92
|
+
isNode(keyNodeOrEntry: K | TreeCounterNode<K, V> | [K | null | undefined, V | undefined] | null | undefined): keyNodeOrEntry is TreeCounterNode<K, V>;
|
|
93
93
|
/**
|
|
94
94
|
* Time Complexity: O(log n)
|
|
95
95
|
* Space Complexity: O(1)
|
|
96
96
|
*
|
|
97
97
|
* The function overrides the add method of a class and adds a new node to a data structure, updating
|
|
98
98
|
* the count and returning a boolean indicating success.
|
|
99
|
-
* @param {
|
|
99
|
+
* @param {K | TreeCounterNode<K, V> | [K | null | undefined, V | undefined] | null | undefined} keyNodeOrEntry - The
|
|
100
100
|
* `keyNodeOrEntry` parameter can accept one of the following types:
|
|
101
101
|
* @param {V} [value] - The `value` parameter represents the value associated with the key in the
|
|
102
102
|
* data structure. It is an optional parameter, so it can be omitted if not needed.
|
|
@@ -106,14 +106,14 @@ export declare class TreeCounter<K = any, V = any, R = object, MK = any, MV = an
|
|
|
106
106
|
* @returns The method is returning a boolean value. It returns true if the addition of the new node
|
|
107
107
|
* was successful, and false otherwise.
|
|
108
108
|
*/
|
|
109
|
-
add(keyNodeOrEntry:
|
|
109
|
+
add(keyNodeOrEntry: K | TreeCounterNode<K, V> | [K | null | undefined, V | undefined] | null | undefined, value?: V, count?: number): boolean;
|
|
110
110
|
/**
|
|
111
111
|
* Time Complexity: O(log n)
|
|
112
112
|
* Space Complexity: O(1)
|
|
113
113
|
*
|
|
114
114
|
* The function `delete` in TypeScript overrides the deletion operation in a binary tree data
|
|
115
115
|
* structure, handling cases where nodes have children and maintaining balance in the tree.
|
|
116
|
-
* @param {
|
|
116
|
+
* @param {K | TreeCounterNode<K, V> | [K | null | undefined, V | undefined] | null | undefined} keyNodeOrEntry - The `predicate`
|
|
117
117
|
* parameter in the `delete` method is used to specify the condition or key based on which a node
|
|
118
118
|
* should be deleted from the binary tree. It can be a key, a node, or an entry.
|
|
119
119
|
* @param [ignoreCount=false] - The `ignoreCount` parameter in the `override delete` method is a
|
|
@@ -122,7 +122,7 @@ export declare class TreeCounter<K = any, V = any, R = object, MK = any, MV = an
|
|
|
122
122
|
* `ignoreCount` is `false
|
|
123
123
|
* @returns The `override delete` method returns an array of `BinaryTreeDeleteResult<TreeCounterNode<K, V>>` objects.
|
|
124
124
|
*/
|
|
125
|
-
delete(keyNodeOrEntry:
|
|
125
|
+
delete(keyNodeOrEntry: K | TreeCounterNode<K, V> | [K | null | undefined, V | undefined] | null | undefined, ignoreCount?: boolean): BinaryTreeDeleteResult<TreeCounterNode<K, V>>[];
|
|
126
126
|
/**
|
|
127
127
|
* Time Complexity: O(1)
|
|
128
128
|
* Space Complexity: O(1)
|
|
@@ -172,8 +172,8 @@ export declare class TreeCounter<K = any, V = any, R = object, MK = any, MV = an
|
|
|
172
172
|
/**
|
|
173
173
|
* The function `keyValueNodeEntryRawToNodeAndValue` takes in a key, value, and count and returns a
|
|
174
174
|
* node based on the input.
|
|
175
|
-
* @param {
|
|
176
|
-
* `keyNodeOrEntry` can be of type `R` or `
|
|
175
|
+
* @param {K | TreeCounterNode<K, V> | [K | null | undefined, V | undefined] | null | undefined} keyNodeOrEntry - The parameter
|
|
176
|
+
* `keyNodeOrEntry` can be of type `R` or `K | TreeCounterNode<K, V> | [K | null | undefined, V | undefined] | null | undefined`.
|
|
177
177
|
* @param {V} [value] - The `value` parameter is an optional value that represents the value
|
|
178
178
|
* associated with the key in the node. It is used when creating a new node or updating the value of
|
|
179
179
|
* an existing node.
|
|
@@ -181,7 +181,7 @@ export declare class TreeCounter<K = any, V = any, R = object, MK = any, MV = an
|
|
|
181
181
|
* times the key-value pair should be added to the data structure. If not provided, it defaults to 1.
|
|
182
182
|
* @returns either a TreeCounterNode<K, V> object or undefined.
|
|
183
183
|
*/
|
|
184
|
-
protected _keyValueNodeOrEntryToNodeAndValue(keyNodeOrEntry:
|
|
184
|
+
protected _keyValueNodeOrEntryToNodeAndValue(keyNodeOrEntry: K | TreeCounterNode<K, V> | [K | null | undefined, V | undefined] | null | undefined, value?: V, count?: number): [TreeCounterNode<K, V> | undefined, V | undefined];
|
|
185
185
|
/**
|
|
186
186
|
* Time Complexity: O(1)
|
|
187
187
|
* Space Complexity: O(1)
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { RedBlackTree, RedBlackTreeNode } from './red-black-tree';
|
|
2
2
|
export class TreeCounterNode extends RedBlackTreeNode {
|
|
3
|
+
parent = undefined;
|
|
3
4
|
/**
|
|
4
5
|
* The constructor function initializes a Red-Black Tree node with a key, value, count, and color.
|
|
5
6
|
* @param {K} key - The key parameter represents the key of the node in the Red-Black Tree. It is
|
|
@@ -16,7 +17,6 @@ export class TreeCounterNode extends RedBlackTreeNode {
|
|
|
16
17
|
super(key, value, color);
|
|
17
18
|
this.count = count;
|
|
18
19
|
}
|
|
19
|
-
parent = undefined;
|
|
20
20
|
_left = undefined;
|
|
21
21
|
get left() {
|
|
22
22
|
return this._left;
|
|
@@ -75,7 +75,7 @@ export class TreeCounter extends RedBlackTree {
|
|
|
75
75
|
*/
|
|
76
76
|
getComputedCount() {
|
|
77
77
|
let sum = 0;
|
|
78
|
-
this.dfs(node => (sum += node.count));
|
|
78
|
+
this.dfs(node => (sum += node ? node.count : 0));
|
|
79
79
|
return sum;
|
|
80
80
|
}
|
|
81
81
|
/**
|
|
@@ -113,8 +113,8 @@ export class TreeCounter extends RedBlackTree {
|
|
|
113
113
|
}
|
|
114
114
|
/**
|
|
115
115
|
* The function checks if the input is an instance of the TreeCounterNode class.
|
|
116
|
-
* @param {
|
|
117
|
-
* `keyNodeOrEntry` can be of type `R` or `
|
|
116
|
+
* @param {K | TreeCounterNode<K, V> | [K | null | undefined, V | undefined] | null | undefined} keyNodeOrEntry - The parameter
|
|
117
|
+
* `keyNodeOrEntry` can be of type `R` or `K | TreeCounterNode<K, V> | [K | null | undefined, V | undefined] | null | undefined`.
|
|
118
118
|
* @returns a boolean value indicating whether the input parameter `keyNodeOrEntry` is
|
|
119
119
|
* an instance of the `TreeCounterNode` class.
|
|
120
120
|
*/
|
|
@@ -127,7 +127,7 @@ export class TreeCounter extends RedBlackTree {
|
|
|
127
127
|
*
|
|
128
128
|
* The function overrides the add method of a class and adds a new node to a data structure, updating
|
|
129
129
|
* the count and returning a boolean indicating success.
|
|
130
|
-
* @param {
|
|
130
|
+
* @param {K | TreeCounterNode<K, V> | [K | null | undefined, V | undefined] | null | undefined} keyNodeOrEntry - The
|
|
131
131
|
* `keyNodeOrEntry` parameter can accept one of the following types:
|
|
132
132
|
* @param {V} [value] - The `value` parameter represents the value associated with the key in the
|
|
133
133
|
* data structure. It is an optional parameter, so it can be omitted if not needed.
|
|
@@ -155,7 +155,7 @@ export class TreeCounter extends RedBlackTree {
|
|
|
155
155
|
*
|
|
156
156
|
* The function `delete` in TypeScript overrides the deletion operation in a binary tree data
|
|
157
157
|
* structure, handling cases where nodes have children and maintaining balance in the tree.
|
|
158
|
-
* @param {
|
|
158
|
+
* @param {K | TreeCounterNode<K, V> | [K | null | undefined, V | undefined] | null | undefined} keyNodeOrEntry - The `predicate`
|
|
159
159
|
* parameter in the `delete` method is used to specify the condition or key based on which a node
|
|
160
160
|
* should be deleted from the binary tree. It can be a key, a node, or an entry.
|
|
161
161
|
* @param [ignoreCount=false] - The `ignoreCount` parameter in the `override delete` method is a
|
|
@@ -296,9 +296,9 @@ export class TreeCounter extends RedBlackTree {
|
|
|
296
296
|
return;
|
|
297
297
|
const m = l + Math.floor((r - l) / 2);
|
|
298
298
|
const midNode = sorted[m];
|
|
299
|
-
if (this._isMapMode)
|
|
299
|
+
if (this._isMapMode && midNode !== null)
|
|
300
300
|
this.add(midNode.key, undefined, midNode.count);
|
|
301
|
-
else
|
|
301
|
+
else if (midNode !== null)
|
|
302
302
|
this.add(midNode.key, midNode.value, midNode.count);
|
|
303
303
|
buildBalanceBST(l, m - 1);
|
|
304
304
|
buildBalanceBST(m + 1, r);
|
|
@@ -315,9 +315,9 @@ export class TreeCounter extends RedBlackTree {
|
|
|
315
315
|
if (l <= r) {
|
|
316
316
|
const m = l + Math.floor((r - l) / 2);
|
|
317
317
|
const midNode = sorted[m];
|
|
318
|
-
if (this._isMapMode)
|
|
318
|
+
if (this._isMapMode && midNode !== null)
|
|
319
319
|
this.add(midNode.key, undefined, midNode.count);
|
|
320
|
-
else
|
|
320
|
+
else if (midNode !== null)
|
|
321
321
|
this.add(midNode.key, midNode.value, midNode.count);
|
|
322
322
|
stack.push([m + 1, r]);
|
|
323
323
|
stack.push([l, m - 1]);
|
|
@@ -336,7 +336,7 @@ export class TreeCounter extends RedBlackTree {
|
|
|
336
336
|
*/
|
|
337
337
|
clone() {
|
|
338
338
|
const cloned = this.createTree();
|
|
339
|
-
this.bfs(node => cloned.add(node.key, undefined, node.count));
|
|
339
|
+
this.bfs(node => cloned.add(node === null ? null : node.key, undefined, node === null ? 0 : node.count));
|
|
340
340
|
if (this._isMapMode)
|
|
341
341
|
cloned._store = this._store;
|
|
342
342
|
return cloned;
|
|
@@ -367,8 +367,8 @@ export class TreeCounter extends RedBlackTree {
|
|
|
367
367
|
/**
|
|
368
368
|
* The function `keyValueNodeEntryRawToNodeAndValue` takes in a key, value, and count and returns a
|
|
369
369
|
* node based on the input.
|
|
370
|
-
* @param {
|
|
371
|
-
* `keyNodeOrEntry` can be of type `R` or `
|
|
370
|
+
* @param {K | TreeCounterNode<K, V> | [K | null | undefined, V | undefined] | null | undefined} keyNodeOrEntry - The parameter
|
|
371
|
+
* `keyNodeOrEntry` can be of type `R` or `K | TreeCounterNode<K, V> | [K | null | undefined, V | undefined] | null | undefined`.
|
|
372
372
|
* @param {V} [value] - The `value` parameter is an optional value that represents the value
|
|
373
373
|
* associated with the key in the node. It is used when creating a new node or updating the value of
|
|
374
374
|
* an existing node.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-counter.js","sourceRoot":"","sources":["../../../../src/data-structures/binary-tree/tree-counter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tree-counter.js","sourceRoot":"","sources":["../../../../src/data-structures/binary-tree/tree-counter.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,10 +5,11 @@
|
|
|
5
5
|
* @copyright Copyright (c) 2022 Pablo Zeng <zrwusa@gmail.com>
|
|
6
6
|
* @license MIT License
|
|
7
7
|
*/
|
|
8
|
-
import type {
|
|
8
|
+
import type { TreeMultiMapOptions } from '../../types';
|
|
9
9
|
import { RedBlackTree, RedBlackTreeNode } from './red-black-tree';
|
|
10
10
|
import { IBinaryTree } from '../../interfaces';
|
|
11
11
|
export declare class TreeMultiMapNode<K = any, V = any> extends RedBlackTreeNode<K, V[]> {
|
|
12
|
+
parent?: TreeMultiMapNode<K, V>;
|
|
12
13
|
/**
|
|
13
14
|
* This TypeScript constructor initializes an object with a key of type K and an array of values of
|
|
14
15
|
* type V.
|
|
@@ -19,13 +20,12 @@ export declare class TreeMultiMapNode<K = any, V = any> extends RedBlackTreeNode
|
|
|
19
20
|
* type `V`.
|
|
20
21
|
*/
|
|
21
22
|
constructor(key: K, value: V[]);
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
set right(v: OptNodeOrNull<TreeMultiMapNode<K, V>>);
|
|
23
|
+
_left?: TreeMultiMapNode<K, V> | null | undefined;
|
|
24
|
+
get left(): TreeMultiMapNode<K, V> | null | undefined;
|
|
25
|
+
set left(v: TreeMultiMapNode<K, V> | null | undefined);
|
|
26
|
+
_right?: TreeMultiMapNode<K, V> | null | undefined;
|
|
27
|
+
get right(): TreeMultiMapNode<K, V> | null | undefined;
|
|
28
|
+
set right(v: TreeMultiMapNode<K, V> | null | undefined);
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
31
|
*
|
|
@@ -48,7 +48,7 @@ export declare class TreeMultiMap<K = any, V = any, R = object, MK = any, MV = a
|
|
|
48
48
|
* `TreeMultiMapOptions<K, V[], R>`. It is an optional parameter that allows you to specify
|
|
49
49
|
* additional options for configuring the TreeMultiMap instance.
|
|
50
50
|
*/
|
|
51
|
-
constructor(keysNodesEntriesOrRaws?: Iterable<
|
|
51
|
+
constructor(keysNodesEntriesOrRaws?: Iterable<K | TreeMultiMapNode<K, V> | [K | null | undefined, V[] | undefined] | null | undefined | R>, options?: TreeMultiMapOptions<K, V[], R>);
|
|
52
52
|
/**
|
|
53
53
|
* Time Complexity: O(1)
|
|
54
54
|
* Space Complexity: O(1)
|
|
@@ -75,7 +75,7 @@ export declare class TreeMultiMap<K = any, V = any, R = object, MK = any, MV = a
|
|
|
75
75
|
* an empty array as its value.
|
|
76
76
|
*/
|
|
77
77
|
createNode(key: K): TreeMultiMapNode<K, V>;
|
|
78
|
-
add(node:
|
|
78
|
+
add(node: K | TreeMultiMapNode<K, V> | [K | null | undefined, V[] | undefined] | null | undefined): boolean;
|
|
79
79
|
add(key: K, value: V): boolean;
|
|
80
80
|
/**
|
|
81
81
|
* Time Complexity: O(log n)
|
|
@@ -83,7 +83,7 @@ export declare class TreeMultiMap<K = any, V = any, R = object, MK = any, MV = a
|
|
|
83
83
|
*
|
|
84
84
|
* The function `deleteValue` removes a specific value from a key in a TreeMultiMap data structure
|
|
85
85
|
* and deletes the entire node if no values are left for that key.
|
|
86
|
-
* @param {
|
|
86
|
+
* @param {K | TreeMultiMapNode<K, V> | [K | null | undefined, V[] | undefined] | null | undefined} keyNodeOrEntry - The `keyNodeOrEntry`
|
|
87
87
|
* parameter in the `deleteValue` function can be either a `BTNRep` object containing a key and an
|
|
88
88
|
* array of values, or just a key itself.
|
|
89
89
|
* @param {V} value - The `value` parameter in the `deleteValue` function represents the specific
|
|
@@ -93,7 +93,7 @@ export declare class TreeMultiMap<K = any, V = any, R = object, MK = any, MV = a
|
|
|
93
93
|
* @returns The `deleteValue` function returns a boolean value - `true` if the specified `value` was
|
|
94
94
|
* successfully deleted from the values associated with the `keyNodeOrEntry`, and `false` otherwise.
|
|
95
95
|
*/
|
|
96
|
-
deleteValue(keyNodeOrEntry:
|
|
96
|
+
deleteValue(keyNodeOrEntry: K | TreeMultiMapNode<K, V> | [K | null | undefined, V[] | undefined] | null | undefined, value: V): boolean;
|
|
97
97
|
/**
|
|
98
98
|
* Time Complexity: O(n)
|
|
99
99
|
* Space Complexity: O(n)
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { RedBlackTree, RedBlackTreeNode } from './red-black-tree';
|
|
2
2
|
export class TreeMultiMapNode extends RedBlackTreeNode {
|
|
3
|
+
parent = undefined;
|
|
3
4
|
/**
|
|
4
5
|
* This TypeScript constructor initializes an object with a key of type K and an array of values of
|
|
5
6
|
* type V.
|
|
@@ -12,7 +13,6 @@ export class TreeMultiMapNode extends RedBlackTreeNode {
|
|
|
12
13
|
constructor(key, value) {
|
|
13
14
|
super(key, value);
|
|
14
15
|
}
|
|
15
|
-
parent = undefined;
|
|
16
16
|
_left = undefined;
|
|
17
17
|
get left() {
|
|
18
18
|
return this._left;
|
|
@@ -103,7 +103,7 @@ export class TreeMultiMap extends RedBlackTree {
|
|
|
103
103
|
*
|
|
104
104
|
* The function `add` in TypeScript overrides the superclass method to add key-value pairs to a
|
|
105
105
|
* TreeMultiMapNode, handling different input types and scenarios.
|
|
106
|
-
* @param {
|
|
106
|
+
* @param {K | TreeMultiMapNode<K, V> | [K | null | undefined, V[] | undefined] | null | undefined} keyNodeOrEntry - The `keyNodeOrEntry`
|
|
107
107
|
* parameter in the `override add` method can be either a `BTNRep` object containing a key, an array
|
|
108
108
|
* of values, and a `TreeMultiMapNode`, or just a key.
|
|
109
109
|
* @param {V} [value] - The `value` parameter in the `override add` method represents the value that
|
|
@@ -155,7 +155,7 @@ export class TreeMultiMap extends RedBlackTree {
|
|
|
155
155
|
*
|
|
156
156
|
* The function `deleteValue` removes a specific value from a key in a TreeMultiMap data structure
|
|
157
157
|
* and deletes the entire node if no values are left for that key.
|
|
158
|
-
* @param {
|
|
158
|
+
* @param {K | TreeMultiMapNode<K, V> | [K | null | undefined, V[] | undefined] | null | undefined} keyNodeOrEntry - The `keyNodeOrEntry`
|
|
159
159
|
* parameter in the `deleteValue` function can be either a `BTNRep` object containing a key and an
|
|
160
160
|
* array of values, or just a key itself.
|
|
161
161
|
* @param {V} value - The `value` parameter in the `deleteValue` function represents the specific
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-multi-map.js","sourceRoot":"","sources":["../../../../src/data-structures/binary-tree/tree-multi-map.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGlE,MAAM,OAAO,gBAAmC,SAAQ,gBAAwB;
|
|
1
|
+
{"version":3,"file":"tree-multi-map.js","sourceRoot":"","sources":["../../../../src/data-structures/binary-tree/tree-multi-map.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { BinaryTreeOptions } from './binary-tree';
|
|
2
2
|
import { Comparable } from '../../utils';
|
|
3
3
|
import { OptValue } from '../../common';
|
|
4
|
-
export type BSTOptions<K, V, R> = BinaryTreeOptions<K, V, R> & {
|
|
4
|
+
export type BSTOptions<K, V, R> = Omit<BinaryTreeOptions<K, V, R>, 'isDuplicate'> & {
|
|
5
5
|
specifyComparable?: (key: K) => Comparable;
|
|
6
6
|
isReverse?: boolean;
|
|
7
7
|
};
|
|
@@ -3,7 +3,7 @@ export * from './bst';
|
|
|
3
3
|
export * from './avl-tree';
|
|
4
4
|
export * from './segment-tree';
|
|
5
5
|
export * from './avl-tree-multi-map';
|
|
6
|
-
export * from './
|
|
6
|
+
export * from './red-black-tree';
|
|
7
7
|
export * from './tree-multi-map';
|
|
8
8
|
export * from './tree-counter';
|
|
9
9
|
export * from './avl-tree-counter';
|
|
@@ -3,7 +3,7 @@ export * from './bst';
|
|
|
3
3
|
export * from './avl-tree';
|
|
4
4
|
export * from './segment-tree';
|
|
5
5
|
export * from './avl-tree-multi-map';
|
|
6
|
-
export * from './
|
|
6
|
+
export * from './red-black-tree';
|
|
7
7
|
export * from './tree-multi-map';
|
|
8
8
|
export * from './tree-counter';
|
|
9
9
|
export * from './avl-tree-counter';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/types/data-structures/binary-tree/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/types/data-structures/binary-tree/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"red-black-tree.js","sourceRoot":"","sources":["../../../../../src/types/data-structures/binary-tree/red-black-tree.ts"],"names":[],"mappings":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { RedBlackTreeOptions } from './
|
|
1
|
+
import type { RedBlackTreeOptions } from './red-black-tree';
|
|
2
2
|
export type TreeCounterOptions<K, V, R> = RedBlackTreeOptions<K, V, R> & {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { RedBlackTreeOptions } from './
|
|
1
|
+
import type { RedBlackTreeOptions } from './red-black-tree';
|
|
2
2
|
export type TreeMultiMapOptions<K, V, R> = Omit<RedBlackTreeOptions<K, V, R>, 'isMapMode'> & {};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* data-structure-typed
|
|
3
3
|
*
|
|
4
|
-
* @author
|
|
5
|
-
* @copyright Copyright (c) 2022
|
|
4
|
+
* @author Pablo Zeng
|
|
5
|
+
* @copyright Copyright (c) 2022 Pablo Zeng <zrwusa@gmail.com>
|
|
6
6
|
* @license MIT License
|
|
7
7
|
*/
|
|
8
8
|
import type { Comparable, Thunk, ToThunkFn, TrlAsyncFn, TrlFn } from '../types';
|