data-structure-typed 1.42.4 → 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/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/{tree-multiset.d.ts → tree-multimap.d.ts} +10 -10
- package/dist/cjs/src/data-structures/binary-tree/{tree-multiset.js → tree-multimap.js} +15 -15
- package/dist/cjs/src/data-structures/binary-tree/{tree-multiset.js.map → tree-multimap.js.map} +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/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/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/{tree-multiset.d.ts → tree-multimap.d.ts} +10 -10
- package/dist/mjs/src/data-structures/binary-tree/{tree-multiset.js → tree-multimap.js} +14 -14
- 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/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/index.ts +1 -1
- package/src/data-structures/binary-tree/{tree-multiset.ts → tree-multimap.ts} +14 -14
- package/src/types/data-structures/binary-tree/index.ts +1 -1
- 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/{tree-multiset.test.ts → tree-multimap.test.ts} +182 -182
- 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
package/benchmark/report.json
CHANGED
|
@@ -3,27 +3,27 @@
|
|
|
3
3
|
"benchmarks": [
|
|
4
4
|
{
|
|
5
5
|
"test name": "10,000 add randomly",
|
|
6
|
-
"time taken (ms)": "30.
|
|
7
|
-
"executions per sec": "32.
|
|
8
|
-
"sample deviation": "3.
|
|
6
|
+
"time taken (ms)": "30.52",
|
|
7
|
+
"executions per sec": "32.76",
|
|
8
|
+
"sample deviation": "3.28e-4"
|
|
9
9
|
},
|
|
10
10
|
{
|
|
11
11
|
"test name": "10,000 add & delete randomly",
|
|
12
|
-
"time taken (ms)": "66.
|
|
13
|
-
"executions per sec": "
|
|
12
|
+
"time taken (ms)": "66.96",
|
|
13
|
+
"executions per sec": "14.94",
|
|
14
14
|
"sample deviation": "0.00"
|
|
15
15
|
},
|
|
16
16
|
{
|
|
17
17
|
"test name": "10,000 addMany",
|
|
18
|
-
"time taken (ms)": "39.
|
|
19
|
-
"executions per sec": "25.
|
|
20
|
-
"sample deviation": "3.
|
|
18
|
+
"time taken (ms)": "39.78",
|
|
19
|
+
"executions per sec": "25.14",
|
|
20
|
+
"sample deviation": "3.67e-4"
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
23
|
"test name": "10,000 get",
|
|
24
|
-
"time taken (ms)": "27.
|
|
25
|
-
"executions per sec": "36.
|
|
26
|
-
"sample deviation": "
|
|
24
|
+
"time taken (ms)": "27.38",
|
|
25
|
+
"executions per sec": "36.52",
|
|
26
|
+
"sample deviation": "0.00"
|
|
27
27
|
}
|
|
28
28
|
],
|
|
29
29
|
"testName": "avl-tree"
|
|
@@ -32,45 +32,45 @@
|
|
|
32
32
|
"benchmarks": [
|
|
33
33
|
{
|
|
34
34
|
"test name": "1,000 add randomly",
|
|
35
|
-
"time taken (ms)": "
|
|
36
|
-
"executions per sec": "
|
|
37
|
-
"sample deviation": "
|
|
35
|
+
"time taken (ms)": "10.50",
|
|
36
|
+
"executions per sec": "95.20",
|
|
37
|
+
"sample deviation": "2.30e-4"
|
|
38
38
|
},
|
|
39
39
|
{
|
|
40
40
|
"test name": "1,000 add & delete randomly",
|
|
41
|
-
"time taken (ms)": "16.
|
|
42
|
-
"executions per sec": "61.
|
|
43
|
-
"sample deviation": "
|
|
41
|
+
"time taken (ms)": "16.18",
|
|
42
|
+
"executions per sec": "61.81",
|
|
43
|
+
"sample deviation": "2.48e-4"
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
46
|
"test name": "1,000 addMany",
|
|
47
|
-
"time taken (ms)": "10.
|
|
48
|
-
"executions per sec": "
|
|
49
|
-
"sample deviation": "1.
|
|
47
|
+
"time taken (ms)": "10.80",
|
|
48
|
+
"executions per sec": "92.62",
|
|
49
|
+
"sample deviation": "1.83e-4"
|
|
50
50
|
},
|
|
51
51
|
{
|
|
52
52
|
"test name": "1,000 get",
|
|
53
|
-
"time taken (ms)": "18.
|
|
54
|
-
"executions per sec": "55.
|
|
55
|
-
"sample deviation": "1.
|
|
53
|
+
"time taken (ms)": "18.03",
|
|
54
|
+
"executions per sec": "55.45",
|
|
55
|
+
"sample deviation": "1.41e-4"
|
|
56
56
|
},
|
|
57
57
|
{
|
|
58
58
|
"test name": "1,000 dfs",
|
|
59
|
-
"time taken (ms)": "
|
|
60
|
-
"executions per sec": "
|
|
61
|
-
"sample deviation": "
|
|
59
|
+
"time taken (ms)": "157.86",
|
|
60
|
+
"executions per sec": "6.33",
|
|
61
|
+
"sample deviation": "0.00"
|
|
62
62
|
},
|
|
63
63
|
{
|
|
64
64
|
"test name": "1,000 bfs",
|
|
65
|
-
"time taken (ms)": "
|
|
66
|
-
"executions per sec": "17.
|
|
67
|
-
"sample deviation": "
|
|
65
|
+
"time taken (ms)": "56.68",
|
|
66
|
+
"executions per sec": "17.64",
|
|
67
|
+
"sample deviation": "0.00"
|
|
68
68
|
},
|
|
69
69
|
{
|
|
70
70
|
"test name": "1,000 morris",
|
|
71
|
-
"time taken (ms)": "37.
|
|
72
|
-
"executions per sec": "26.
|
|
73
|
-
"sample deviation": "
|
|
71
|
+
"time taken (ms)": "37.21",
|
|
72
|
+
"executions per sec": "26.88",
|
|
73
|
+
"sample deviation": "2.79e-4"
|
|
74
74
|
}
|
|
75
75
|
],
|
|
76
76
|
"testName": "binary-tree"
|
|
@@ -79,27 +79,27 @@
|
|
|
79
79
|
"benchmarks": [
|
|
80
80
|
{
|
|
81
81
|
"test name": "10,000 add randomly",
|
|
82
|
-
"time taken (ms)": "
|
|
83
|
-
"executions per sec": "
|
|
84
|
-
"sample deviation": "
|
|
82
|
+
"time taken (ms)": "27.61",
|
|
83
|
+
"executions per sec": "36.21",
|
|
84
|
+
"sample deviation": "4.73e-4"
|
|
85
85
|
},
|
|
86
86
|
{
|
|
87
87
|
"test name": "10,000 add & delete randomly",
|
|
88
|
-
"time taken (ms)": "
|
|
89
|
-
"executions per sec": "
|
|
90
|
-
"sample deviation": "
|
|
88
|
+
"time taken (ms)": "62.93",
|
|
89
|
+
"executions per sec": "15.89",
|
|
90
|
+
"sample deviation": "5.86e-4"
|
|
91
91
|
},
|
|
92
92
|
{
|
|
93
93
|
"test name": "10,000 addMany",
|
|
94
|
-
"time taken (ms)": "
|
|
95
|
-
"executions per sec": "
|
|
94
|
+
"time taken (ms)": "28.70",
|
|
95
|
+
"executions per sec": "34.84",
|
|
96
96
|
"sample deviation": "0.00"
|
|
97
97
|
},
|
|
98
98
|
{
|
|
99
99
|
"test name": "10,000 get",
|
|
100
|
-
"time taken (ms)": "
|
|
101
|
-
"executions per sec": "
|
|
102
|
-
"sample deviation": "
|
|
100
|
+
"time taken (ms)": "27.67",
|
|
101
|
+
"executions per sec": "36.14",
|
|
102
|
+
"sample deviation": "2.92e-4"
|
|
103
103
|
}
|
|
104
104
|
],
|
|
105
105
|
"testName": "bst"
|
|
@@ -108,21 +108,21 @@
|
|
|
108
108
|
"benchmarks": [
|
|
109
109
|
{
|
|
110
110
|
"test name": "100,000 add randomly",
|
|
111
|
-
"time taken (ms)": "
|
|
112
|
-
"executions per sec": "11.
|
|
111
|
+
"time taken (ms)": "87.51",
|
|
112
|
+
"executions per sec": "11.43",
|
|
113
113
|
"sample deviation": "0.01"
|
|
114
114
|
},
|
|
115
115
|
{
|
|
116
|
-
"test name": "100,000 add &
|
|
117
|
-
"time taken (ms)": "
|
|
118
|
-
"executions per sec": "
|
|
116
|
+
"test name": "100,000 add & delete randomly",
|
|
117
|
+
"time taken (ms)": "189.06",
|
|
118
|
+
"executions per sec": "5.29",
|
|
119
119
|
"sample deviation": "0.01"
|
|
120
120
|
},
|
|
121
121
|
{
|
|
122
122
|
"test name": "100,000 getNode",
|
|
123
|
-
"time taken (ms)": "
|
|
124
|
-
"executions per sec": "
|
|
125
|
-
"sample deviation": "
|
|
123
|
+
"time taken (ms)": "35.33",
|
|
124
|
+
"executions per sec": "28.31",
|
|
125
|
+
"sample deviation": "8.93e-4"
|
|
126
126
|
}
|
|
127
127
|
],
|
|
128
128
|
"testName": "rb-tree"
|
|
@@ -132,44 +132,44 @@
|
|
|
132
132
|
{
|
|
133
133
|
"test name": "1,000 addVertex",
|
|
134
134
|
"time taken (ms)": "0.10",
|
|
135
|
-
"executions per sec": "
|
|
136
|
-
"sample deviation": "
|
|
135
|
+
"executions per sec": "9899.91",
|
|
136
|
+
"sample deviation": "8.58e-7"
|
|
137
137
|
},
|
|
138
138
|
{
|
|
139
139
|
"test name": "1,000 addEdge",
|
|
140
|
-
"time taken (ms)": "6.
|
|
141
|
-
"executions per sec": "
|
|
142
|
-
"sample deviation": "1.
|
|
140
|
+
"time taken (ms)": "6.06",
|
|
141
|
+
"executions per sec": "165.02",
|
|
142
|
+
"sample deviation": "1.68e-4"
|
|
143
143
|
},
|
|
144
144
|
{
|
|
145
145
|
"test name": "1,000 getVertex",
|
|
146
146
|
"time taken (ms)": "0.05",
|
|
147
|
-
"executions per sec": "2.
|
|
148
|
-
"sample deviation": "
|
|
147
|
+
"executions per sec": "2.17e+4",
|
|
148
|
+
"sample deviation": "4.22e-7"
|
|
149
149
|
},
|
|
150
150
|
{
|
|
151
151
|
"test name": "1,000 getEdge",
|
|
152
|
-
"time taken (ms)": "23.
|
|
153
|
-
"executions per sec": "
|
|
154
|
-
"sample deviation": "0.
|
|
152
|
+
"time taken (ms)": "23.05",
|
|
153
|
+
"executions per sec": "43.38",
|
|
154
|
+
"sample deviation": "0.00"
|
|
155
155
|
},
|
|
156
156
|
{
|
|
157
157
|
"test name": "tarjan",
|
|
158
|
-
"time taken (ms)": "
|
|
159
|
-
"executions per sec": "4.
|
|
158
|
+
"time taken (ms)": "222.59",
|
|
159
|
+
"executions per sec": "4.49",
|
|
160
160
|
"sample deviation": "0.01"
|
|
161
161
|
},
|
|
162
162
|
{
|
|
163
163
|
"test name": "tarjan all",
|
|
164
|
-
"time taken (ms)": "
|
|
165
|
-
"executions per sec": "4.
|
|
166
|
-
"sample deviation": "0.
|
|
164
|
+
"time taken (ms)": "226.89",
|
|
165
|
+
"executions per sec": "4.41",
|
|
166
|
+
"sample deviation": "0.01"
|
|
167
167
|
},
|
|
168
168
|
{
|
|
169
169
|
"test name": "topologicalSort",
|
|
170
|
-
"time taken (ms)": "
|
|
171
|
-
"executions per sec": "5.
|
|
172
|
-
"sample deviation": "0.
|
|
170
|
+
"time taken (ms)": "187.34",
|
|
171
|
+
"executions per sec": "5.34",
|
|
172
|
+
"sample deviation": "0.01"
|
|
173
173
|
}
|
|
174
174
|
],
|
|
175
175
|
"testName": "directed-graph"
|
|
@@ -178,15 +178,15 @@
|
|
|
178
178
|
"benchmarks": [
|
|
179
179
|
{
|
|
180
180
|
"test name": "10,000 add & pop",
|
|
181
|
-
"time taken (ms)": "4.
|
|
182
|
-
"executions per sec": "
|
|
183
|
-
"sample deviation": "
|
|
181
|
+
"time taken (ms)": "4.66",
|
|
182
|
+
"executions per sec": "214.54",
|
|
183
|
+
"sample deviation": "9.38e-5"
|
|
184
184
|
},
|
|
185
185
|
{
|
|
186
186
|
"test name": "10,000 fib add & pop",
|
|
187
|
-
"time taken (ms)": "
|
|
188
|
-
"executions per sec": "2.
|
|
189
|
-
"sample deviation": "0.
|
|
187
|
+
"time taken (ms)": "364.30",
|
|
188
|
+
"executions per sec": "2.74",
|
|
189
|
+
"sample deviation": "0.01"
|
|
190
190
|
}
|
|
191
191
|
],
|
|
192
192
|
"testName": "heap"
|
|
@@ -195,21 +195,21 @@
|
|
|
195
195
|
"benchmarks": [
|
|
196
196
|
{
|
|
197
197
|
"test name": "1,000,000 unshift",
|
|
198
|
-
"time taken (ms)": "
|
|
199
|
-
"executions per sec": "4.
|
|
200
|
-
"sample deviation": "0.
|
|
198
|
+
"time taken (ms)": "243.61",
|
|
199
|
+
"executions per sec": "4.10",
|
|
200
|
+
"sample deviation": "0.07"
|
|
201
201
|
},
|
|
202
202
|
{
|
|
203
203
|
"test name": "1,000,000 unshift & shift",
|
|
204
|
-
"time taken (ms)": "
|
|
205
|
-
"executions per sec": "
|
|
206
|
-
"sample deviation": "0.
|
|
204
|
+
"time taken (ms)": "173.32",
|
|
205
|
+
"executions per sec": "5.77",
|
|
206
|
+
"sample deviation": "0.03"
|
|
207
207
|
},
|
|
208
208
|
{
|
|
209
209
|
"test name": "1,000,000 insertBefore",
|
|
210
|
-
"time taken (ms)": "
|
|
211
|
-
"executions per sec": "
|
|
212
|
-
"sample deviation": "0.
|
|
210
|
+
"time taken (ms)": "315.86",
|
|
211
|
+
"executions per sec": "3.17",
|
|
212
|
+
"sample deviation": "0.04"
|
|
213
213
|
}
|
|
214
214
|
],
|
|
215
215
|
"testName": "doubly-linked-list"
|
|
@@ -218,14 +218,14 @@
|
|
|
218
218
|
"benchmarks": [
|
|
219
219
|
{
|
|
220
220
|
"test name": "10,000 push & pop",
|
|
221
|
-
"time taken (ms)": "
|
|
222
|
-
"executions per sec": "4.
|
|
223
|
-
"sample deviation": "0.
|
|
221
|
+
"time taken (ms)": "228.06",
|
|
222
|
+
"executions per sec": "4.38",
|
|
223
|
+
"sample deviation": "0.03"
|
|
224
224
|
},
|
|
225
225
|
{
|
|
226
226
|
"test name": "10,000 insertBefore",
|
|
227
|
-
"time taken (ms)": "
|
|
228
|
-
"executions per sec": "3.
|
|
227
|
+
"time taken (ms)": "252.07",
|
|
228
|
+
"executions per sec": "3.97",
|
|
229
229
|
"sample deviation": "0.01"
|
|
230
230
|
}
|
|
231
231
|
],
|
|
@@ -235,9 +235,9 @@
|
|
|
235
235
|
"benchmarks": [
|
|
236
236
|
{
|
|
237
237
|
"test name": "10,000 refill & poll",
|
|
238
|
-
"time taken (ms)": "11.
|
|
239
|
-
"executions per sec": "
|
|
240
|
-
"sample deviation": "
|
|
238
|
+
"time taken (ms)": "11.53",
|
|
239
|
+
"executions per sec": "86.71",
|
|
240
|
+
"sample deviation": "2.27e-4"
|
|
241
241
|
}
|
|
242
242
|
],
|
|
243
243
|
"testName": "max-priority-queue"
|
|
@@ -246,14 +246,14 @@
|
|
|
246
246
|
"benchmarks": [
|
|
247
247
|
{
|
|
248
248
|
"test name": "1,000,000 push",
|
|
249
|
-
"time taken (ms)": "
|
|
250
|
-
"executions per sec": "4.
|
|
251
|
-
"sample deviation": "0.
|
|
249
|
+
"time taken (ms)": "227.24",
|
|
250
|
+
"executions per sec": "4.40",
|
|
251
|
+
"sample deviation": "0.07"
|
|
252
252
|
},
|
|
253
253
|
{
|
|
254
254
|
"test name": "1,000,000 shift",
|
|
255
|
-
"time taken (ms)": "25.
|
|
256
|
-
"executions per sec": "39.
|
|
255
|
+
"time taken (ms)": "25.60",
|
|
256
|
+
"executions per sec": "39.07",
|
|
257
257
|
"sample deviation": "0.00"
|
|
258
258
|
}
|
|
259
259
|
],
|
|
@@ -263,14 +263,14 @@
|
|
|
263
263
|
"benchmarks": [
|
|
264
264
|
{
|
|
265
265
|
"test name": "1,000,000 push",
|
|
266
|
-
"time taken (ms)": "
|
|
267
|
-
"executions per sec": "
|
|
266
|
+
"time taken (ms)": "45.98",
|
|
267
|
+
"executions per sec": "21.75",
|
|
268
268
|
"sample deviation": "0.01"
|
|
269
269
|
},
|
|
270
270
|
{
|
|
271
271
|
"test name": "1,000,000 push & shift",
|
|
272
|
-
"time taken (ms)": "
|
|
273
|
-
"executions per sec": "12.
|
|
272
|
+
"time taken (ms)": "81.12",
|
|
273
|
+
"executions per sec": "12.33",
|
|
274
274
|
"sample deviation": "0.00"
|
|
275
275
|
}
|
|
276
276
|
],
|
|
@@ -280,15 +280,15 @@
|
|
|
280
280
|
"benchmarks": [
|
|
281
281
|
{
|
|
282
282
|
"test name": "100,000 push",
|
|
283
|
-
"time taken (ms)": "
|
|
284
|
-
"executions per sec": "16.
|
|
283
|
+
"time taken (ms)": "59.40",
|
|
284
|
+
"executions per sec": "16.83",
|
|
285
285
|
"sample deviation": "0.01"
|
|
286
286
|
},
|
|
287
287
|
{
|
|
288
288
|
"test name": "100,000 getWords",
|
|
289
|
-
"time taken (ms)": "
|
|
290
|
-
"executions per sec": "
|
|
291
|
-
"sample deviation": "0.
|
|
289
|
+
"time taken (ms)": "90.07",
|
|
290
|
+
"executions per sec": "11.10",
|
|
291
|
+
"sample deviation": "0.00"
|
|
292
292
|
}
|
|
293
293
|
],
|
|
294
294
|
"testName": "trie"
|
|
@@ -20,5 +20,5 @@ __exportStar(require("./binary-indexed-tree"), exports);
|
|
|
20
20
|
__exportStar(require("./segment-tree"), exports);
|
|
21
21
|
__exportStar(require("./avl-tree"), exports);
|
|
22
22
|
__exportStar(require("./rb-tree"), exports);
|
|
23
|
-
__exportStar(require("./tree-
|
|
23
|
+
__exportStar(require("./tree-multimap"), exports);
|
|
24
24
|
//# sourceMappingURL=index.js.map
|
|
@@ -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
|
/**
|
|
@@ -70,10 +70,10 @@ export declare class TreeMultiset<V = any, N extends TreeMultisetNode<V, N> = Tr
|
|
|
70
70
|
*/
|
|
71
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
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
|
|
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.
|
|
@@ -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,7 +47,7 @@ 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
|
|
@@ -66,7 +66,7 @@ class TreeMultiset extends avl_tree_1.AVLTree {
|
|
|
66
66
|
if (keyOrNode === null)
|
|
67
67
|
return undefined;
|
|
68
68
|
let inserted = undefined, newNode;
|
|
69
|
-
if (keyOrNode instanceof
|
|
69
|
+
if (keyOrNode instanceof TreeMultimapNode) {
|
|
70
70
|
newNode = this.createNode(keyOrNode.key, keyOrNode.value, keyOrNode.count);
|
|
71
71
|
}
|
|
72
72
|
else if (keyOrNode === undefined) {
|
|
@@ -175,10 +175,10 @@ class TreeMultiset extends avl_tree_1.AVLTree {
|
|
|
175
175
|
}
|
|
176
176
|
}
|
|
177
177
|
/**
|
|
178
|
-
* 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
|
|
179
179
|
* inserted nodes.
|
|
180
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
|
|
181
|
+
* added to the multiset. Each element can be either a BTNKey or a TreeMultimapNode.
|
|
182
182
|
* @param {V[]} [data] - The `data` parameter is an optional array of values that correspond
|
|
183
183
|
* to the keys or nodes being added to the multiset. It is used to associate additional data with
|
|
184
184
|
* each key or node.
|
|
@@ -188,7 +188,7 @@ class TreeMultiset extends avl_tree_1.AVLTree {
|
|
|
188
188
|
const inserted = [];
|
|
189
189
|
for (let i = 0; i < keysOrNodes.length; i++) {
|
|
190
190
|
const keyOrNode = keysOrNodes[i];
|
|
191
|
-
if (keyOrNode instanceof
|
|
191
|
+
if (keyOrNode instanceof TreeMultimapNode) {
|
|
192
192
|
inserted.push(this.add(keyOrNode.key, keyOrNode.value, keyOrNode.count));
|
|
193
193
|
continue;
|
|
194
194
|
}
|
|
@@ -355,5 +355,5 @@ class TreeMultiset extends avl_tree_1.AVLTree {
|
|
|
355
355
|
this._count = v;
|
|
356
356
|
}
|
|
357
357
|
}
|
|
358
|
-
exports.
|
|
359
|
-
//# sourceMappingURL=tree-
|
|
358
|
+
exports.TreeMultimap = TreeMultimap;
|
|
359
|
+
//# sourceMappingURL=tree-multimap.js.map
|
package/dist/cjs/src/data-structures/binary-tree/{tree-multiset.js.map → tree-multimap.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-
|
|
1
|
+
{"version":3,"file":"tree-multimap.js","sourceRoot":"","sources":["../../../../../src/data-structures/binary-tree/tree-multimap.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
|
@@ -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":""}
|
|
@@ -20,4 +20,4 @@ __exportStar(require("./binary-indexed-tree"), exports);
|
|
|
20
20
|
__exportStar(require("./segment-tree"), exports);
|
|
21
21
|
__exportStar(require("./avl-tree"), exports);
|
|
22
22
|
__exportStar(require("./rb-tree"), exports);
|
|
23
|
-
__exportStar(require("./tree-
|
|
23
|
+
__exportStar(require("./tree-multimap"), exports);
|