data-structure-typed 1.42.3 → 1.42.5
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 +17 -17
- package/benchmark/report.html +12 -12
- package/benchmark/report.json +106 -106
- package/dist/cjs/src/data-structures/binary-tree/avl-tree.d.ts +2 -2
- package/dist/cjs/src/data-structures/binary-tree/avl-tree.js +5 -3
- package/dist/cjs/src/data-structures/binary-tree/avl-tree.js.map +1 -1
- package/dist/cjs/src/data-structures/binary-tree/binary-tree.d.ts +56 -52
- package/dist/cjs/src/data-structures/binary-tree/binary-tree.js +115 -53
- package/dist/cjs/src/data-structures/binary-tree/binary-tree.js.map +1 -1
- package/dist/cjs/src/data-structures/binary-tree/bst.d.ts +42 -15
- package/dist/cjs/src/data-structures/binary-tree/bst.js +77 -21
- package/dist/cjs/src/data-structures/binary-tree/bst.js.map +1 -1
- package/dist/cjs/src/data-structures/binary-tree/index.d.ts +1 -1
- package/dist/cjs/src/data-structures/binary-tree/index.js +1 -1
- package/dist/cjs/src/data-structures/binary-tree/rb-tree.d.ts +28 -51
- package/dist/cjs/src/data-structures/binary-tree/rb-tree.js +148 -180
- package/dist/cjs/src/data-structures/binary-tree/rb-tree.js.map +1 -1
- package/dist/cjs/src/data-structures/binary-tree/{tree-multiset.d.ts → tree-multimap.d.ts} +20 -20
- package/dist/cjs/src/data-structures/binary-tree/{tree-multiset.js → tree-multimap.js} +35 -32
- package/dist/cjs/src/data-structures/binary-tree/tree-multimap.js.map +1 -0
- package/dist/cjs/src/types/data-structures/binary-tree/binary-tree.d.ts +1 -1
- package/dist/cjs/src/types/data-structures/binary-tree/index.d.ts +1 -1
- package/dist/cjs/src/types/data-structures/binary-tree/index.js +1 -1
- package/dist/cjs/src/types/data-structures/binary-tree/rb-tree.d.ts +4 -0
- package/dist/cjs/src/types/data-structures/binary-tree/rb-tree.js +0 -5
- package/dist/cjs/src/types/data-structures/binary-tree/rb-tree.js.map +1 -1
- package/dist/cjs/src/types/data-structures/binary-tree/tree-multimap.d.ts +4 -0
- package/dist/cjs/src/types/data-structures/binary-tree/{tree-multiset.js → tree-multimap.js} +1 -1
- package/dist/cjs/src/types/data-structures/binary-tree/tree-multimap.js.map +1 -0
- package/dist/mjs/src/data-structures/binary-tree/avl-tree.d.ts +2 -2
- package/dist/mjs/src/data-structures/binary-tree/avl-tree.js +5 -3
- package/dist/mjs/src/data-structures/binary-tree/binary-tree.d.ts +56 -52
- package/dist/mjs/src/data-structures/binary-tree/binary-tree.js +115 -53
- package/dist/mjs/src/data-structures/binary-tree/bst.d.ts +42 -15
- package/dist/mjs/src/data-structures/binary-tree/bst.js +79 -21
- package/dist/mjs/src/data-structures/binary-tree/index.d.ts +1 -1
- package/dist/mjs/src/data-structures/binary-tree/index.js +1 -1
- package/dist/mjs/src/data-structures/binary-tree/rb-tree.d.ts +28 -51
- package/dist/mjs/src/data-structures/binary-tree/rb-tree.js +148 -184
- package/dist/mjs/src/data-structures/binary-tree/{tree-multiset.d.ts → tree-multimap.d.ts} +20 -20
- package/dist/mjs/src/data-structures/binary-tree/{tree-multiset.js → tree-multimap.js} +33 -31
- package/dist/mjs/src/types/data-structures/binary-tree/binary-tree.d.ts +1 -1
- package/dist/mjs/src/types/data-structures/binary-tree/index.d.ts +1 -1
- package/dist/mjs/src/types/data-structures/binary-tree/index.js +1 -1
- package/dist/mjs/src/types/data-structures/binary-tree/rb-tree.d.ts +4 -0
- package/dist/mjs/src/types/data-structures/binary-tree/rb-tree.js +0 -5
- package/dist/mjs/src/types/data-structures/binary-tree/tree-multimap.d.ts +4 -0
- package/dist/umd/data-structure-typed.min.js +1 -1
- package/dist/umd/data-structure-typed.min.js.map +1 -1
- package/package.json +5 -3
- package/src/data-structures/binary-tree/avl-tree.ts +5 -4
- package/src/data-structures/binary-tree/binary-tree.ts +201 -131
- package/src/data-structures/binary-tree/bst.ts +100 -34
- package/src/data-structures/binary-tree/index.ts +1 -1
- package/src/data-structures/binary-tree/rb-tree.ts +227 -236
- package/src/data-structures/binary-tree/{tree-multiset.ts → tree-multimap.ts} +38 -37
- package/src/types/data-structures/binary-tree/binary-tree.ts +1 -1
- package/src/types/data-structures/binary-tree/index.ts +1 -1
- package/src/types/data-structures/binary-tree/rb-tree.ts +5 -5
- package/src/types/data-structures/binary-tree/tree-multimap.ts +6 -0
- package/test/performance/data-structures/binary-tree/rb-tree.test.ts +2 -2
- package/test/unit/data-structures/binary-tree/avl-tree.test.ts +20 -1
- package/test/unit/data-structures/binary-tree/binary-tree.test.ts +12 -31
- package/test/unit/data-structures/binary-tree/bst.test.ts +3 -3
- package/test/unit/data-structures/binary-tree/rb-tree.test.ts +205 -159
- package/test/unit/data-structures/binary-tree/{tree-multiset.test.ts → tree-multimap.test.ts} +182 -182
- package/dist/cjs/src/data-structures/binary-tree/tree-multiset.js.map +0 -1
- package/dist/cjs/src/types/data-structures/binary-tree/tree-multiset.d.ts +0 -4
- package/dist/cjs/src/types/data-structures/binary-tree/tree-multiset.js.map +0 -1
- package/dist/mjs/src/types/data-structures/binary-tree/tree-multiset.d.ts +0 -4
- package/src/types/data-structures/binary-tree/tree-multiset.ts +0 -6
- /package/dist/mjs/src/types/data-structures/binary-tree/{tree-multiset.js → tree-multimap.js} +0 -0
- /package/test/performance/data-structures/binary-tree/{tree-multiset.test.ts → tree-multimap.test.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rb-tree.js","sourceRoot":"","sources":["../../../../../src/data-structures/binary-tree/rb-tree.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rb-tree.js","sourceRoot":"","sources":["../../../../../src/data-structures/binary-tree/rb-tree.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
* @copyright Copyright (c) 2022 Tyler Zeng <zrwusa@gmail.com>
|
|
6
6
|
* @license MIT License
|
|
7
7
|
*/
|
|
8
|
-
import type { BTNKey,
|
|
8
|
+
import type { BTNKey, TreeMultimapNodeNested, TreeMultimapOptions } from '../../types';
|
|
9
9
|
import { BinaryTreeDeletedResult, BTNCallback, IterationType } from '../../types';
|
|
10
10
|
import { IBinaryTree } from '../../interfaces';
|
|
11
11
|
import { AVLTree, AVLTreeNode } from './avl-tree';
|
|
12
|
-
export declare class
|
|
12
|
+
export declare class TreeMultimapNode<V = any, N extends TreeMultimapNode<V, N> = TreeMultimapNodeNested<V>> extends AVLTreeNode<V, N> {
|
|
13
13
|
count: number;
|
|
14
14
|
/**
|
|
15
15
|
* The constructor function initializes a BinaryTreeNode object with a key, value, and count.
|
|
@@ -24,16 +24,16 @@ export declare class TreeMultisetNode<V = any, N extends TreeMultisetNode<V, N>
|
|
|
24
24
|
constructor(key: BTNKey, value?: V, count?: number);
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
|
-
* The only distinction between a
|
|
27
|
+
* The only distinction between a TreeMultimap and a AVLTree lies in the ability of the former to store duplicate nodes through the utilization of counters.
|
|
28
28
|
*/
|
|
29
|
-
export declare class
|
|
29
|
+
export declare class TreeMultimap<V = any, N extends TreeMultimapNode<V, N> = TreeMultimapNode<V, TreeMultimapNodeNested<V>>> extends AVLTree<V, N> implements IBinaryTree<V, N> {
|
|
30
30
|
/**
|
|
31
|
-
* The constructor function for a
|
|
31
|
+
* The constructor function for a TreeMultimap class in TypeScript, which extends another class and sets an option to
|
|
32
32
|
* merge duplicated values.
|
|
33
|
-
* @param {
|
|
34
|
-
*
|
|
33
|
+
* @param {TreeMultimapOptions} [options] - An optional object that contains additional configuration options for the
|
|
34
|
+
* TreeMultimap.
|
|
35
35
|
*/
|
|
36
|
-
constructor(options?:
|
|
36
|
+
constructor(options?: TreeMultimapOptions);
|
|
37
37
|
private _count;
|
|
38
38
|
get count(): number;
|
|
39
39
|
/**
|
|
@@ -49,37 +49,37 @@ export declare class TreeMultiset<V = any, N extends TreeMultisetNode<V, N> = Tr
|
|
|
49
49
|
/**
|
|
50
50
|
* The `add` function adds a new node to a binary search tree, updating the count if the key already
|
|
51
51
|
* exists, and balancing the tree if necessary.
|
|
52
|
-
* @param {BTNKey | N |
|
|
52
|
+
* @param {BTNKey | N | undefined} keyOrNode - The `keyOrNode` parameter can be either a
|
|
53
53
|
* `BTNKey` (which represents the key of the node to be added), a `N` (which represents a
|
|
54
|
-
* node to be added), or `
|
|
54
|
+
* node to be added), or `undefined` (which represents a undefined node).
|
|
55
55
|
* @param [value] - The `value` parameter represents the value associated with the key that is being
|
|
56
56
|
* added to the binary tree.
|
|
57
57
|
* @param [count=1] - The `count` parameter represents the number of occurrences of the key/value
|
|
58
58
|
* pair that will be added to the binary tree. It has a default value of 1, which means that if no
|
|
59
59
|
* count is specified, the default count will be 1.
|
|
60
|
-
* @returns The function `add` returns a value of type `N |
|
|
60
|
+
* @returns The function `add` returns a value of type `N | undefined | undefined`.
|
|
61
61
|
*/
|
|
62
|
-
add(keyOrNode: BTNKey | N | null, value?: V, count?: number): N |
|
|
62
|
+
add(keyOrNode: BTNKey | N | null | undefined, value?: V, count?: number): N | undefined;
|
|
63
63
|
/**
|
|
64
64
|
* The function adds a new node to a binary tree if there is an available slot in the parent node.
|
|
65
|
-
* @param {N |
|
|
66
|
-
* the tree. It can be either a node object (`N`) or `
|
|
65
|
+
* @param {N | undefined} newNode - The `newNode` parameter represents the node that needs to be added to
|
|
66
|
+
* the tree. It can be either a node object (`N`) or `undefined`.
|
|
67
67
|
* @param {N} parent - The `parent` parameter represents the parent node to which the new node will
|
|
68
68
|
* be added as a child.
|
|
69
69
|
* @returns The method `_addTo` returns either the `parent.left`, `parent.right`, or `undefined`.
|
|
70
70
|
*/
|
|
71
|
-
_addTo(newNode: N |
|
|
71
|
+
_addTo(newNode: N | undefined, parent: N): N | undefined;
|
|
72
72
|
/**
|
|
73
|
-
* The `addMany` function adds multiple keys or nodes to a
|
|
73
|
+
* The `addMany` function adds multiple keys or nodes to a TreeMultimap and returns an array of the
|
|
74
74
|
* inserted nodes.
|
|
75
|
-
* @param {(BTNKey |
|
|
76
|
-
* added to the multiset. Each element can be either a BTNKey or a
|
|
75
|
+
* @param {(BTNKey | undefined)[] | (N | undefined)[]} keysOrNodes - An array of keys or nodes to be
|
|
76
|
+
* added to the multiset. Each element can be either a BTNKey or a TreeMultimapNode.
|
|
77
77
|
* @param {V[]} [data] - The `data` parameter is an optional array of values that correspond
|
|
78
78
|
* to the keys or nodes being added to the multiset. It is used to associate additional data with
|
|
79
79
|
* each key or node.
|
|
80
|
-
* @returns The function `addMany` returns an array of `N`, `
|
|
80
|
+
* @returns The function `addMany` returns an array of `N`, `undefined`, or `undefined` values.
|
|
81
81
|
*/
|
|
82
|
-
addMany(keysOrNodes: (BTNKey |
|
|
82
|
+
addMany(keysOrNodes: (BTNKey | undefined)[] | (N | undefined)[], data?: V[]): (N | undefined)[];
|
|
83
83
|
/**
|
|
84
84
|
* The `perfectlyBalance` function in TypeScript takes a sorted array of nodes and builds a balanced
|
|
85
85
|
* binary search tree using either a recursive or iterative approach.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.TreeMultimap = exports.TreeMultimapNode = void 0;
|
|
4
4
|
const types_1 = require("../../types");
|
|
5
5
|
const avl_tree_1 = require("./avl-tree");
|
|
6
|
-
class
|
|
6
|
+
class TreeMultimapNode extends avl_tree_1.AVLTreeNode {
|
|
7
7
|
/**
|
|
8
8
|
* The constructor function initializes a BinaryTreeNode object with a key, value, and count.
|
|
9
9
|
* @param {BTNKey} key - The `key` parameter is of type `BTNKey` and represents the unique identifier
|
|
@@ -19,16 +19,16 @@ class TreeMultisetNode extends avl_tree_1.AVLTreeNode {
|
|
|
19
19
|
this.count = count;
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
|
-
exports.
|
|
22
|
+
exports.TreeMultimapNode = TreeMultimapNode;
|
|
23
23
|
/**
|
|
24
|
-
* The only distinction between a
|
|
24
|
+
* The only distinction between a TreeMultimap and a AVLTree lies in the ability of the former to store duplicate nodes through the utilization of counters.
|
|
25
25
|
*/
|
|
26
|
-
class
|
|
26
|
+
class TreeMultimap extends avl_tree_1.AVLTree {
|
|
27
27
|
/**
|
|
28
|
-
* The constructor function for a
|
|
28
|
+
* The constructor function for a TreeMultimap class in TypeScript, which extends another class and sets an option to
|
|
29
29
|
* merge duplicated values.
|
|
30
|
-
* @param {
|
|
31
|
-
*
|
|
30
|
+
* @param {TreeMultimapOptions} [options] - An optional object that contains additional configuration options for the
|
|
31
|
+
* TreeMultimap.
|
|
32
32
|
*/
|
|
33
33
|
constructor(options) {
|
|
34
34
|
super(options);
|
|
@@ -47,28 +47,30 @@ class TreeMultiset extends avl_tree_1.AVLTree {
|
|
|
47
47
|
* @returns A new instance of the BSTNode class with the specified key, value, and count (if provided).
|
|
48
48
|
*/
|
|
49
49
|
createNode(key, value, count) {
|
|
50
|
-
return new
|
|
50
|
+
return new TreeMultimapNode(key, value, count);
|
|
51
51
|
}
|
|
52
52
|
/**
|
|
53
53
|
* The `add` function adds a new node to a binary search tree, updating the count if the key already
|
|
54
54
|
* exists, and balancing the tree if necessary.
|
|
55
|
-
* @param {BTNKey | N |
|
|
55
|
+
* @param {BTNKey | N | undefined} keyOrNode - The `keyOrNode` parameter can be either a
|
|
56
56
|
* `BTNKey` (which represents the key of the node to be added), a `N` (which represents a
|
|
57
|
-
* node to be added), or `
|
|
57
|
+
* node to be added), or `undefined` (which represents a undefined node).
|
|
58
58
|
* @param [value] - The `value` parameter represents the value associated with the key that is being
|
|
59
59
|
* added to the binary tree.
|
|
60
60
|
* @param [count=1] - The `count` parameter represents the number of occurrences of the key/value
|
|
61
61
|
* pair that will be added to the binary tree. It has a default value of 1, which means that if no
|
|
62
62
|
* count is specified, the default count will be 1.
|
|
63
|
-
* @returns The function `add` returns a value of type `N |
|
|
63
|
+
* @returns The function `add` returns a value of type `N | undefined | undefined`.
|
|
64
64
|
*/
|
|
65
65
|
add(keyOrNode, value, count = 1) {
|
|
66
|
+
if (keyOrNode === null)
|
|
67
|
+
return undefined;
|
|
66
68
|
let inserted = undefined, newNode;
|
|
67
|
-
if (keyOrNode instanceof
|
|
69
|
+
if (keyOrNode instanceof TreeMultimapNode) {
|
|
68
70
|
newNode = this.createNode(keyOrNode.key, keyOrNode.value, keyOrNode.count);
|
|
69
71
|
}
|
|
70
|
-
else if (keyOrNode ===
|
|
71
|
-
newNode =
|
|
72
|
+
else if (keyOrNode === undefined) {
|
|
73
|
+
newNode = undefined;
|
|
72
74
|
}
|
|
73
75
|
else {
|
|
74
76
|
newNode = this.createNode(keyOrNode, value, count);
|
|
@@ -126,7 +128,7 @@ class TreeMultiset extends avl_tree_1.AVLTree {
|
|
|
126
128
|
}
|
|
127
129
|
}
|
|
128
130
|
else {
|
|
129
|
-
// TODO may need to support
|
|
131
|
+
// TODO may need to support undefined inserted
|
|
130
132
|
}
|
|
131
133
|
}
|
|
132
134
|
else {
|
|
@@ -140,8 +142,8 @@ class TreeMultiset extends avl_tree_1.AVLTree {
|
|
|
140
142
|
}
|
|
141
143
|
/**
|
|
142
144
|
* The function adds a new node to a binary tree if there is an available slot in the parent node.
|
|
143
|
-
* @param {N |
|
|
144
|
-
* the tree. It can be either a node object (`N`) or `
|
|
145
|
+
* @param {N | undefined} newNode - The `newNode` parameter represents the node that needs to be added to
|
|
146
|
+
* the tree. It can be either a node object (`N`) or `undefined`.
|
|
145
147
|
* @param {N} parent - The `parent` parameter represents the parent node to which the new node will
|
|
146
148
|
* be added as a child.
|
|
147
149
|
* @returns The method `_addTo` returns either the `parent.left`, `parent.right`, or `undefined`.
|
|
@@ -150,7 +152,7 @@ class TreeMultiset extends avl_tree_1.AVLTree {
|
|
|
150
152
|
if (parent) {
|
|
151
153
|
if (parent.left === undefined) {
|
|
152
154
|
parent.left = newNode;
|
|
153
|
-
if (newNode !==
|
|
155
|
+
if (newNode !== undefined) {
|
|
154
156
|
this._size = this.size + 1;
|
|
155
157
|
this._setCount(this.count + newNode.count);
|
|
156
158
|
}
|
|
@@ -158,7 +160,7 @@ class TreeMultiset extends avl_tree_1.AVLTree {
|
|
|
158
160
|
}
|
|
159
161
|
else if (parent.right === undefined) {
|
|
160
162
|
parent.right = newNode;
|
|
161
|
-
if (newNode !==
|
|
163
|
+
if (newNode !== undefined) {
|
|
162
164
|
this._size = this.size + 1;
|
|
163
165
|
this._setCount(this.count + newNode.count);
|
|
164
166
|
}
|
|
@@ -173,24 +175,24 @@ class TreeMultiset extends avl_tree_1.AVLTree {
|
|
|
173
175
|
}
|
|
174
176
|
}
|
|
175
177
|
/**
|
|
176
|
-
* The `addMany` function adds multiple keys or nodes to a
|
|
178
|
+
* The `addMany` function adds multiple keys or nodes to a TreeMultimap and returns an array of the
|
|
177
179
|
* inserted nodes.
|
|
178
|
-
* @param {(BTNKey |
|
|
179
|
-
* added to the multiset. Each element can be either a BTNKey or a
|
|
180
|
+
* @param {(BTNKey | undefined)[] | (N | undefined)[]} keysOrNodes - An array of keys or nodes to be
|
|
181
|
+
* added to the multiset. Each element can be either a BTNKey or a TreeMultimapNode.
|
|
180
182
|
* @param {V[]} [data] - The `data` parameter is an optional array of values that correspond
|
|
181
183
|
* to the keys or nodes being added to the multiset. It is used to associate additional data with
|
|
182
184
|
* each key or node.
|
|
183
|
-
* @returns The function `addMany` returns an array of `N`, `
|
|
185
|
+
* @returns The function `addMany` returns an array of `N`, `undefined`, or `undefined` values.
|
|
184
186
|
*/
|
|
185
187
|
addMany(keysOrNodes, data) {
|
|
186
188
|
const inserted = [];
|
|
187
189
|
for (let i = 0; i < keysOrNodes.length; i++) {
|
|
188
190
|
const keyOrNode = keysOrNodes[i];
|
|
189
|
-
if (keyOrNode instanceof
|
|
191
|
+
if (keyOrNode instanceof TreeMultimapNode) {
|
|
190
192
|
inserted.push(this.add(keyOrNode.key, keyOrNode.value, keyOrNode.count));
|
|
191
193
|
continue;
|
|
192
194
|
}
|
|
193
|
-
if (keyOrNode ===
|
|
195
|
+
if (keyOrNode === undefined) {
|
|
194
196
|
inserted.push(this.add(NaN, undefined, 0));
|
|
195
197
|
continue;
|
|
196
198
|
}
|
|
@@ -259,14 +261,15 @@ class TreeMultiset extends avl_tree_1.AVLTree {
|
|
|
259
261
|
* @returns The method `delete` returns an array of `BinaryTreeDeletedResult<N>` objects.
|
|
260
262
|
*/
|
|
261
263
|
delete(identifier, callback = this.defaultOneParamCallback, ignoreCount = false) {
|
|
264
|
+
var _a;
|
|
262
265
|
const bstDeletedResult = [];
|
|
263
266
|
if (!this.root)
|
|
264
267
|
return bstDeletedResult;
|
|
265
|
-
const curr = this.getNode(identifier, callback);
|
|
268
|
+
const curr = (_a = this.getNode(identifier, callback)) !== null && _a !== void 0 ? _a : undefined;
|
|
266
269
|
if (!curr)
|
|
267
270
|
return bstDeletedResult;
|
|
268
|
-
const parent = (curr === null || curr === void 0 ? void 0 : curr.parent) ? curr.parent :
|
|
269
|
-
let needBalanced =
|
|
271
|
+
const parent = (curr === null || curr === void 0 ? void 0 : curr.parent) ? curr.parent : undefined;
|
|
272
|
+
let needBalanced = undefined, orgCurrent = curr;
|
|
270
273
|
if (curr.count > 1 && !ignoreCount) {
|
|
271
274
|
curr.count--;
|
|
272
275
|
this._setCount(this.count - 1);
|
|
@@ -289,7 +292,7 @@ class TreeMultiset extends avl_tree_1.AVLTree {
|
|
|
289
292
|
}
|
|
290
293
|
}
|
|
291
294
|
else {
|
|
292
|
-
const leftSubTreeRightMost = curr.left ? this.getRightMost(curr.left) :
|
|
295
|
+
const leftSubTreeRightMost = curr.left ? this.getRightMost(curr.left) : undefined;
|
|
293
296
|
if (leftSubTreeRightMost) {
|
|
294
297
|
const parentOfLeftSubTreeMax = leftSubTreeRightMost.parent;
|
|
295
298
|
orgCurrent = this._swap(curr, leftSubTreeRightMost);
|
|
@@ -352,5 +355,5 @@ class TreeMultiset extends avl_tree_1.AVLTree {
|
|
|
352
355
|
this._count = v;
|
|
353
356
|
}
|
|
354
357
|
}
|
|
355
|
-
exports.
|
|
356
|
-
//# sourceMappingURL=tree-
|
|
358
|
+
exports.TreeMultimap = TreeMultimap;
|
|
359
|
+
//# sourceMappingURL=tree-multimap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree-multimap.js","sourceRoot":"","sources":["../../../../../src/data-structures/binary-tree/tree-multimap.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@ export declare enum FamilyPosition {
|
|
|
21
21
|
export type BTNKey = number;
|
|
22
22
|
export type BinaryTreeDeletedResult<N> = {
|
|
23
23
|
deleted: N | null | undefined;
|
|
24
|
-
needBalanced: N | null;
|
|
24
|
+
needBalanced: N | null | undefined;
|
|
25
25
|
};
|
|
26
26
|
export type BinaryTreeNodeNested<T> = BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, any>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>;
|
|
27
27
|
export type BinaryTreeOptions = {
|
|
@@ -18,6 +18,6 @@ __exportStar(require("./binary-tree"), exports);
|
|
|
18
18
|
__exportStar(require("./bst"), exports);
|
|
19
19
|
__exportStar(require("./avl-tree"), exports);
|
|
20
20
|
__exportStar(require("./segment-tree"), exports);
|
|
21
|
-
__exportStar(require("./tree-
|
|
21
|
+
__exportStar(require("./tree-multimap"), exports);
|
|
22
22
|
__exportStar(require("./rb-tree"), exports);
|
|
23
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
+
import { RBTreeNode } from '../../../data-structures';
|
|
2
|
+
import { BSTOptions } from "./bst";
|
|
1
3
|
export declare enum RBTNColor {
|
|
2
4
|
RED = 1,
|
|
3
5
|
BLACK = 0
|
|
4
6
|
}
|
|
7
|
+
export type RBTreeNodeNested<T> = RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, any>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>;
|
|
8
|
+
export type RBTreeOptions = BSTOptions & {};
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// import {BinaryTreeOptions} from './binary-tree';
|
|
3
|
-
// import {RBTreeNode} from '../../../data-structures';
|
|
4
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
3
|
exports.RBTNColor = void 0;
|
|
6
4
|
var RBTNColor;
|
|
@@ -8,7 +6,4 @@ var RBTNColor;
|
|
|
8
6
|
RBTNColor[RBTNColor["RED"] = 1] = "RED";
|
|
9
7
|
RBTNColor[RBTNColor["BLACK"] = 0] = "BLACK";
|
|
10
8
|
})(RBTNColor || (exports.RBTNColor = RBTNColor = {}));
|
|
11
|
-
// export type RBTreeNodeNested<T> = RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, RBTreeNode<T, any>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
|
12
|
-
//
|
|
13
|
-
// export type RBTreeOptions = BinaryTreeOptions & {}
|
|
14
9
|
//# sourceMappingURL=rb-tree.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rb-tree.js","sourceRoot":"","sources":["../../../../../../src/types/data-structures/binary-tree/rb-tree.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rb-tree.js","sourceRoot":"","sources":["../../../../../../src/types/data-structures/binary-tree/rb-tree.ts"],"names":[],"mappings":";;;AAGA,IAAY,SAA+B;AAA3C,WAAY,SAAS;IAAG,uCAAO,CAAA;IAAE,2CAAS,CAAA;AAAA,CAAC,EAA/B,SAAS,yBAAT,SAAS,QAAsB"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { TreeMultimapNode } from '../../../data-structures';
|
|
2
|
+
import { AVLTreeOptions } from './avl-tree';
|
|
3
|
+
export type TreeMultimapNodeNested<T> = TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, TreeMultimapNode<T, any>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>;
|
|
4
|
+
export type TreeMultimapOptions = Omit<AVLTreeOptions, 'isMergeDuplicatedNodeByKey'> & {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree-multimap.js","sourceRoot":"","sources":["../../../../../../src/types/data-structures/binary-tree/tree-multimap.ts"],"names":[],"mappings":""}
|
|
@@ -34,13 +34,13 @@ export declare class AVLTree<V = any, N extends AVLTreeNode<V, N> = AVLTreeNode<
|
|
|
34
34
|
/**
|
|
35
35
|
* The function overrides the add method of a binary tree node and balances the tree after inserting
|
|
36
36
|
* a new node.
|
|
37
|
-
* @param {BTNKey | N |
|
|
37
|
+
* @param {BTNKey | N | undefined} keyOrNode - The `keyOrNode` parameter can accept either a
|
|
38
38
|
* `BTNKey` or a `N` (which represents a node in the binary tree) or `null`.
|
|
39
39
|
* @param [value] - The `value` parameter is the value that you want to assign to the new node that you
|
|
40
40
|
* are adding to the binary search tree.
|
|
41
41
|
* @returns The method is returning the inserted node (`N`), `null`, or `undefined`.
|
|
42
42
|
*/
|
|
43
|
-
add(keyOrNode: BTNKey | N | null, value?: V): N |
|
|
43
|
+
add(keyOrNode: BTNKey | N | null | undefined, value?: V): N | undefined;
|
|
44
44
|
/**
|
|
45
45
|
* The function overrides the delete method of a binary tree and balances the tree after deleting a
|
|
46
46
|
* node if necessary.
|
|
@@ -42,13 +42,15 @@ class AVLTree extends bst_1.BST {
|
|
|
42
42
|
/**
|
|
43
43
|
* The function overrides the add method of a binary tree node and balances the tree after inserting
|
|
44
44
|
* a new node.
|
|
45
|
-
* @param {BTNKey | N |
|
|
45
|
+
* @param {BTNKey | N | undefined} keyOrNode - The `keyOrNode` parameter can accept either a
|
|
46
46
|
* `BTNKey` or a `N` (which represents a node in the binary tree) or `null`.
|
|
47
47
|
* @param [value] - The `value` parameter is the value that you want to assign to the new node that you
|
|
48
48
|
* are adding to the binary search tree.
|
|
49
49
|
* @returns The method is returning the inserted node (`N`), `null`, or `undefined`.
|
|
50
50
|
*/
|
|
51
51
|
add(keyOrNode, value) {
|
|
52
|
+
if (keyOrNode === null)
|
|
53
|
+
return undefined;
|
|
52
54
|
const inserted = super.add(keyOrNode, value);
|
|
53
55
|
if (inserted)
|
|
54
56
|
this._balancePath(inserted);
|
|
@@ -218,7 +220,7 @@ class AVLTree extends bst_1.BST {
|
|
|
218
220
|
_balanceLR(A) {
|
|
219
221
|
const parentOfA = A.parent;
|
|
220
222
|
const B = A.left;
|
|
221
|
-
let C =
|
|
223
|
+
let C = undefined;
|
|
222
224
|
if (B) {
|
|
223
225
|
C = B.right;
|
|
224
226
|
}
|
|
@@ -302,7 +304,7 @@ class AVLTree extends bst_1.BST {
|
|
|
302
304
|
_balanceRL(A) {
|
|
303
305
|
const parentOfA = A.parent;
|
|
304
306
|
const B = A.right;
|
|
305
|
-
let C =
|
|
307
|
+
let C = undefined;
|
|
306
308
|
if (B) {
|
|
307
309
|
C = B.left;
|
|
308
310
|
}
|