data-structure-typed 2.2.6 → 2.2.8
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/CONTRIBUTING.md +47 -1
- package/README.md +19 -8
- package/README_CN.md +119 -275
- package/benchmark/report.html +1 -1
- package/benchmark/report.json +20 -324
- package/dist/cjs/index.cjs +109 -107
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs-legacy/index.cjs +109 -107
- package/dist/cjs-legacy/index.cjs.map +1 -1
- package/dist/esm/index.mjs +109 -107
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm-legacy/index.mjs +109 -107
- package/dist/esm-legacy/index.mjs.map +1 -1
- package/dist/leetcode/avl-tree-counter.mjs +2957 -0
- package/dist/leetcode/avl-tree-multi-map.mjs +2889 -0
- package/dist/leetcode/avl-tree.mjs +2720 -0
- package/dist/leetcode/binary-tree.mjs +1594 -0
- package/dist/leetcode/bst.mjs +2398 -0
- package/dist/leetcode/deque.mjs +683 -0
- package/dist/leetcode/directed-graph.mjs +1733 -0
- package/dist/leetcode/doubly-linked-list.mjs +709 -0
- package/dist/leetcode/hash-map.mjs +493 -0
- package/dist/leetcode/heap.mjs +542 -0
- package/dist/leetcode/max-heap.mjs +375 -0
- package/dist/leetcode/max-priority-queue.mjs +383 -0
- package/dist/leetcode/min-heap.mjs +363 -0
- package/dist/leetcode/min-priority-queue.mjs +371 -0
- package/dist/leetcode/priority-queue.mjs +363 -0
- package/dist/leetcode/queue.mjs +943 -0
- package/dist/leetcode/red-black-tree.mjs +2765 -0
- package/dist/leetcode/singly-linked-list.mjs +754 -0
- package/dist/leetcode/stack.mjs +217 -0
- package/dist/leetcode/tree-counter.mjs +3039 -0
- package/dist/leetcode/tree-multi-map.mjs +2913 -0
- package/dist/leetcode/trie.mjs +413 -0
- package/dist/leetcode/undirected-graph.mjs +1650 -0
- package/dist/types/data-structures/binary-tree/avl-tree-counter.d.ts +1 -1
- package/dist/types/data-structures/binary-tree/avl-tree-multi-map.d.ts +2 -2
- package/dist/types/data-structures/binary-tree/avl-tree.d.ts +10 -10
- package/dist/types/data-structures/binary-tree/binary-tree.d.ts +22 -23
- package/dist/types/data-structures/binary-tree/bst.d.ts +11 -11
- package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +1 -1
- package/dist/types/data-structures/binary-tree/tree-counter.d.ts +1 -1
- package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +2 -2
- package/dist/umd/data-structure-typed.js +105 -103
- package/dist/umd/data-structure-typed.js.map +1 -1
- package/dist/umd/data-structure-typed.min.js +2 -2
- package/dist/umd/data-structure-typed.min.js.map +1 -1
- package/package.json +48 -171
- package/src/data-structures/binary-tree/avl-tree-counter.ts +6 -6
- package/src/data-structures/binary-tree/avl-tree-multi-map.ts +13 -13
- package/src/data-structures/binary-tree/avl-tree.ts +15 -15
- package/src/data-structures/binary-tree/binary-tree.ts +53 -55
- package/src/data-structures/binary-tree/bst.ts +21 -22
- package/src/data-structures/binary-tree/red-black-tree.ts +3 -3
- package/src/data-structures/binary-tree/tree-counter.ts +4 -4
- package/src/data-structures/binary-tree/tree-multi-map.ts +13 -13
- package/test/performance/data-structures/binary-tree/red-black-tree.test.ts +1 -2
- package/test/unit/data-structures/binary-tree/avl-tree-counter.test.ts +30 -30
- package/test/unit/data-structures/binary-tree/avl-tree-multi-map.test.ts +46 -46
- package/test/unit/data-structures/binary-tree/avl-tree.test.ts +43 -43
- package/test/unit/data-structures/binary-tree/binary-tree.test.ts +151 -151
- package/test/unit/data-structures/binary-tree/bst.test.ts +99 -99
- package/test/unit/data-structures/binary-tree/overall.test.ts +20 -20
- package/test/unit/data-structures/binary-tree/red-black-tree.test.ts +141 -141
- package/test/unit/data-structures/binary-tree/tree-counter.test.ts +37 -37
- package/test/unit/data-structures/binary-tree/tree-multi-map.test.ts +145 -145
- package/tsup.config.js +50 -21
- package/tsup.leetcode.config.js +1 -1
- package/tsup.umd.config.js +29 -0
- package/tsup.node.config.js +0 -83
package/benchmark/report.json
CHANGED
|
@@ -3,343 +3,39 @@
|
|
|
3
3
|
"benchmarks": [
|
|
4
4
|
{
|
|
5
5
|
"Test Case": "1,000,000 set",
|
|
6
|
-
"Latency Avg (ms)": "
|
|
7
|
-
"Min (ms)": "
|
|
8
|
-
"Max (ms)": "
|
|
9
|
-
"Stability": "±
|
|
6
|
+
"Latency Avg (ms)": "2544.36",
|
|
7
|
+
"Min (ms)": "2387.12",
|
|
8
|
+
"Max (ms)": "2869.15",
|
|
9
|
+
"Stability": "±8.37%"
|
|
10
10
|
},
|
|
11
11
|
{
|
|
12
12
|
"Test Case": "1,000,000 get",
|
|
13
|
-
"Latency Avg (ms)": "
|
|
14
|
-
"Min (ms)": "
|
|
15
|
-
"Max (ms)": "
|
|
16
|
-
"Stability": "±
|
|
13
|
+
"Latency Avg (ms)": "54.20",
|
|
14
|
+
"Min (ms)": "52.66",
|
|
15
|
+
"Max (ms)": "72.16",
|
|
16
|
+
"Stability": "±1.47%"
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
19
|
"Test Case": "1,000,000 iterator",
|
|
20
|
-
"Latency Avg (ms)": "
|
|
21
|
-
"Min (ms)": "
|
|
22
|
-
"Max (ms)": "
|
|
23
|
-
"Stability": "±
|
|
20
|
+
"Latency Avg (ms)": "484.95",
|
|
21
|
+
"Min (ms)": "470.10",
|
|
22
|
+
"Max (ms)": "542.07",
|
|
23
|
+
"Stability": "±3.63%"
|
|
24
24
|
},
|
|
25
25
|
{
|
|
26
26
|
"Test Case": "Competitor 1,000,000 set",
|
|
27
|
-
"Latency Avg (ms)": "
|
|
28
|
-
"Min (ms)": "
|
|
29
|
-
"Max (ms)": "
|
|
30
|
-
"Stability": "±
|
|
27
|
+
"Latency Avg (ms)": "676.05",
|
|
28
|
+
"Min (ms)": "651.85",
|
|
29
|
+
"Max (ms)": "729.81",
|
|
30
|
+
"Stability": "±4.07%"
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
"Test Case": "Competitor 1,000,000 get",
|
|
34
|
-
"Latency Avg (ms)": "
|
|
35
|
-
"Min (ms)": "
|
|
36
|
-
"Max (ms)": "
|
|
37
|
-
"Stability": "±
|
|
34
|
+
"Latency Avg (ms)": "682.61",
|
|
35
|
+
"Min (ms)": "675.91",
|
|
36
|
+
"Max (ms)": "699.91",
|
|
37
|
+
"Stability": "±1.00%"
|
|
38
38
|
}
|
|
39
39
|
]
|
|
40
|
-
},
|
|
41
|
-
"queue": {
|
|
42
|
-
"benchmarks": [
|
|
43
|
-
{
|
|
44
|
-
"Test Case": "1,000,000 push",
|
|
45
|
-
"Latency Avg (ms)": "26.83",
|
|
46
|
-
"Min (ms)": "21.26",
|
|
47
|
-
"Max (ms)": "67.52",
|
|
48
|
-
"Stability": "±7.94%"
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
"Test Case": "100,000 push & shift",
|
|
52
|
-
"Latency Avg (ms)": "2.71",
|
|
53
|
-
"Min (ms)": "2.40",
|
|
54
|
-
"Max (ms)": "3.56",
|
|
55
|
-
"Stability": "±1.99%"
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
"Test Case": "Native JS Array 100,000 push & shift",
|
|
59
|
-
"Latency Avg (ms)": "1214.60",
|
|
60
|
-
"Min (ms)": "1060.42",
|
|
61
|
-
"Max (ms)": "1423.06",
|
|
62
|
-
"Stability": "±10.02%"
|
|
63
|
-
}
|
|
64
|
-
]
|
|
65
|
-
},
|
|
66
|
-
"deque": {
|
|
67
|
-
"benchmarks": [
|
|
68
|
-
{
|
|
69
|
-
"Test Case": "1,000,000 push",
|
|
70
|
-
"Latency Avg (ms)": "8.85",
|
|
71
|
-
"Min (ms)": "8.48",
|
|
72
|
-
"Max (ms)": "9.64",
|
|
73
|
-
"Stability": "±0.50%"
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
"Test Case": "1,000,000 push & pop",
|
|
77
|
-
"Latency Avg (ms)": "13.52",
|
|
78
|
-
"Min (ms)": "13.02",
|
|
79
|
-
"Max (ms)": "14.76",
|
|
80
|
-
"Stability": "±0.54%"
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
"Test Case": "1,000,000 push & shift",
|
|
84
|
-
"Latency Avg (ms)": "14.08",
|
|
85
|
-
"Min (ms)": "13.62",
|
|
86
|
-
"Max (ms)": "15.34",
|
|
87
|
-
"Stability": "±0.51%"
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
"Test Case": "100,000 push & shift",
|
|
91
|
-
"Latency Avg (ms)": "1.35",
|
|
92
|
-
"Min (ms)": "1.31",
|
|
93
|
-
"Max (ms)": "1.44",
|
|
94
|
-
"Stability": "±0.33%"
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
"Test Case": "Native JS Array 100,000 push & shift",
|
|
98
|
-
"Latency Avg (ms)": "1429.15",
|
|
99
|
-
"Min (ms)": "944.17",
|
|
100
|
-
"Max (ms)": "1975.05",
|
|
101
|
-
"Stability": "±26.96%"
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
"Test Case": "100,000 unshift & shift",
|
|
105
|
-
"Latency Avg (ms)": "1.29",
|
|
106
|
-
"Min (ms)": "1.25",
|
|
107
|
-
"Max (ms)": "1.54",
|
|
108
|
-
"Stability": "±0.68%"
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
"Test Case": "Native JS Array 100,000 unshift & shift",
|
|
112
|
-
"Latency Avg (ms)": "2200.25",
|
|
113
|
-
"Min (ms)": "1844.73",
|
|
114
|
-
"Max (ms)": "2839.30",
|
|
115
|
-
"Stability": "±17.78%"
|
|
116
|
-
}
|
|
117
|
-
]
|
|
118
|
-
},
|
|
119
|
-
"heap": {
|
|
120
|
-
"benchmarks": [
|
|
121
|
-
{
|
|
122
|
-
"Test Case": "100,000 add",
|
|
123
|
-
"Latency Avg (ms)": "4.70",
|
|
124
|
-
"Min (ms)": "4.36",
|
|
125
|
-
"Max (ms)": "5.15",
|
|
126
|
-
"Stability": "±0.81%"
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
"Test Case": "100,000 add & poll",
|
|
130
|
-
"Latency Avg (ms)": "17.31",
|
|
131
|
-
"Min (ms)": "16.65",
|
|
132
|
-
"Max (ms)": "18.67",
|
|
133
|
-
"Stability": "±0.57%"
|
|
134
|
-
}
|
|
135
|
-
]
|
|
136
|
-
},
|
|
137
|
-
"avl-tree": {
|
|
138
|
-
"benchmarks": [
|
|
139
|
-
{
|
|
140
|
-
"Test Case": "100,000 set randomly",
|
|
141
|
-
"Latency Avg (ms)": "354.58",
|
|
142
|
-
"Min (ms)": "320.37",
|
|
143
|
-
"Max (ms)": "396.77",
|
|
144
|
-
"Stability": "±5.90%"
|
|
145
|
-
},
|
|
146
|
-
{
|
|
147
|
-
"Test Case": "100,000 set",
|
|
148
|
-
"Latency Avg (ms)": "310.29",
|
|
149
|
-
"Min (ms)": "294.79",
|
|
150
|
-
"Max (ms)": "362.25",
|
|
151
|
-
"Stability": "±4.57%"
|
|
152
|
-
},
|
|
153
|
-
{
|
|
154
|
-
"Test Case": "100,000 get",
|
|
155
|
-
"Latency Avg (ms)": "0.26",
|
|
156
|
-
"Min (ms)": "0.25",
|
|
157
|
-
"Max (ms)": "0.29",
|
|
158
|
-
"Stability": "±0.44%"
|
|
159
|
-
},
|
|
160
|
-
{
|
|
161
|
-
"Test Case": "100,000 getNode",
|
|
162
|
-
"Latency Avg (ms)": "199.21",
|
|
163
|
-
"Min (ms)": "170.37",
|
|
164
|
-
"Max (ms)": "228.69",
|
|
165
|
-
"Stability": "±4.40%"
|
|
166
|
-
},
|
|
167
|
-
{
|
|
168
|
-
"Test Case": "100,000 iterator",
|
|
169
|
-
"Latency Avg (ms)": "15.41",
|
|
170
|
-
"Min (ms)": "13.39",
|
|
171
|
-
"Max (ms)": "29.67",
|
|
172
|
-
"Stability": "±4.05%"
|
|
173
|
-
},
|
|
174
|
-
{
|
|
175
|
-
"Test Case": "100,000 set & delete orderly",
|
|
176
|
-
"Latency Avg (ms)": "436.63",
|
|
177
|
-
"Min (ms)": "426.38",
|
|
178
|
-
"Max (ms)": "457.78",
|
|
179
|
-
"Stability": "±1.52%"
|
|
180
|
-
},
|
|
181
|
-
{
|
|
182
|
-
"Test Case": "100,000 set & delete randomly",
|
|
183
|
-
"Latency Avg (ms)": "526.98",
|
|
184
|
-
"Min (ms)": "512.67",
|
|
185
|
-
"Max (ms)": "544.63",
|
|
186
|
-
"Stability": "±1.87%"
|
|
187
|
-
}
|
|
188
|
-
]
|
|
189
|
-
},
|
|
190
|
-
"hash-map": {
|
|
191
|
-
"benchmarks": [
|
|
192
|
-
{
|
|
193
|
-
"Test Case": "1,000,000 set",
|
|
194
|
-
"Latency Avg (ms)": "40.68",
|
|
195
|
-
"Min (ms)": "33.35",
|
|
196
|
-
"Max (ms)": "59.21",
|
|
197
|
-
"Stability": "±4.69%"
|
|
198
|
-
},
|
|
199
|
-
{
|
|
200
|
-
"Test Case": "Native JS Map 1,000,000 set",
|
|
201
|
-
"Latency Avg (ms)": "144.13",
|
|
202
|
-
"Min (ms)": "131.77",
|
|
203
|
-
"Max (ms)": "167.71",
|
|
204
|
-
"Stability": "±3.43%"
|
|
205
|
-
},
|
|
206
|
-
{
|
|
207
|
-
"Test Case": "Native JS Set 1,000,000 add",
|
|
208
|
-
"Latency Avg (ms)": "112.65",
|
|
209
|
-
"Min (ms)": "104.13",
|
|
210
|
-
"Max (ms)": "148.36",
|
|
211
|
-
"Stability": "±4.84%"
|
|
212
|
-
},
|
|
213
|
-
{
|
|
214
|
-
"Test Case": "1,000,000 set & get",
|
|
215
|
-
"Latency Avg (ms)": "45.40",
|
|
216
|
-
"Min (ms)": "36.83",
|
|
217
|
-
"Max (ms)": "57.24",
|
|
218
|
-
"Stability": "±4.56%"
|
|
219
|
-
},
|
|
220
|
-
{
|
|
221
|
-
"Test Case": "Native JS Map 1,000,000 set & get",
|
|
222
|
-
"Latency Avg (ms)": "195.80",
|
|
223
|
-
"Min (ms)": "184.61",
|
|
224
|
-
"Max (ms)": "220.64",
|
|
225
|
-
"Stability": "±3.12%"
|
|
226
|
-
},
|
|
227
|
-
{
|
|
228
|
-
"Test Case": "Native JS Set 1,000,000 add & has",
|
|
229
|
-
"Latency Avg (ms)": "159.47",
|
|
230
|
-
"Min (ms)": "148.45",
|
|
231
|
-
"Max (ms)": "196.09",
|
|
232
|
-
"Stability": "±4.13%"
|
|
233
|
-
},
|
|
234
|
-
{
|
|
235
|
-
"Test Case": "1,000,000 ObjKey set & get",
|
|
236
|
-
"Latency Avg (ms)": "239.09",
|
|
237
|
-
"Min (ms)": "210.63",
|
|
238
|
-
"Max (ms)": "272.97",
|
|
239
|
-
"Stability": "±5.14%"
|
|
240
|
-
},
|
|
241
|
-
{
|
|
242
|
-
"Test Case": "Native JS Map 1,000,000 ObjKey set & get",
|
|
243
|
-
"Latency Avg (ms)": "207.48",
|
|
244
|
-
"Min (ms)": "181.81",
|
|
245
|
-
"Max (ms)": "240.56",
|
|
246
|
-
"Stability": "±5.90%"
|
|
247
|
-
},
|
|
248
|
-
{
|
|
249
|
-
"Test Case": "Native JS Set 1,000,000 ObjKey add & has",
|
|
250
|
-
"Latency Avg (ms)": "188.86",
|
|
251
|
-
"Min (ms)": "162.40",
|
|
252
|
-
"Max (ms)": "246.83",
|
|
253
|
-
"Stability": "±8.41%"
|
|
254
|
-
}
|
|
255
|
-
]
|
|
256
|
-
},
|
|
257
|
-
"directed-graph": {
|
|
258
|
-
"benchmarks": [
|
|
259
|
-
{
|
|
260
|
-
"Test Case": "1,000 addVertex",
|
|
261
|
-
"Latency Avg (ms)": "0.05",
|
|
262
|
-
"Min (ms)": "0.04",
|
|
263
|
-
"Max (ms)": "0.05",
|
|
264
|
-
"Stability": "±0.37%"
|
|
265
|
-
},
|
|
266
|
-
{
|
|
267
|
-
"Test Case": "1,000 addEdge",
|
|
268
|
-
"Latency Avg (ms)": "3.00",
|
|
269
|
-
"Min (ms)": "2.78",
|
|
270
|
-
"Max (ms)": "5.35",
|
|
271
|
-
"Stability": "±2.48%"
|
|
272
|
-
},
|
|
273
|
-
{
|
|
274
|
-
"Test Case": "1,000 getVertex",
|
|
275
|
-
"Latency Avg (ms)": "0.04",
|
|
276
|
-
"Min (ms)": "0.04",
|
|
277
|
-
"Max (ms)": "0.04",
|
|
278
|
-
"Stability": "±0.52%"
|
|
279
|
-
},
|
|
280
|
-
{
|
|
281
|
-
"Test Case": "1,000 getEdge",
|
|
282
|
-
"Latency Avg (ms)": "44.78",
|
|
283
|
-
"Min (ms)": "40.89",
|
|
284
|
-
"Max (ms)": "97.02",
|
|
285
|
-
"Stability": "±5.62%"
|
|
286
|
-
},
|
|
287
|
-
{
|
|
288
|
-
"Test Case": "tarjan",
|
|
289
|
-
"Latency Avg (ms)": "241.55",
|
|
290
|
-
"Min (ms)": "235.87",
|
|
291
|
-
"Max (ms)": "269.07",
|
|
292
|
-
"Stability": "±1.82%"
|
|
293
|
-
},
|
|
294
|
-
{
|
|
295
|
-
"Test Case": "topologicalSort",
|
|
296
|
-
"Latency Avg (ms)": "200.74",
|
|
297
|
-
"Min (ms)": "197.47",
|
|
298
|
-
"Max (ms)": "219.65",
|
|
299
|
-
"Stability": "±1.30%"
|
|
300
|
-
}
|
|
301
|
-
]
|
|
302
|
-
},
|
|
303
|
-
"bst": {
|
|
304
|
-
"benchmarks": []
|
|
305
|
-
},
|
|
306
|
-
"trie": {
|
|
307
|
-
"benchmarks": [
|
|
308
|
-
{
|
|
309
|
-
"Test Case": "100,000 push",
|
|
310
|
-
"Latency Avg (ms)": "27.66",
|
|
311
|
-
"Min (ms)": "25.13",
|
|
312
|
-
"Max (ms)": "37.31",
|
|
313
|
-
"Stability": "±1.98%"
|
|
314
|
-
},
|
|
315
|
-
{
|
|
316
|
-
"Test Case": "100,000 getWords",
|
|
317
|
-
"Latency Avg (ms)": "64.62",
|
|
318
|
-
"Min (ms)": "37.66",
|
|
319
|
-
"Max (ms)": "288.42",
|
|
320
|
-
"Stability": "±29.56%"
|
|
321
|
-
}
|
|
322
|
-
]
|
|
323
|
-
},
|
|
324
|
-
"stack": {
|
|
325
|
-
"benchmarks": [
|
|
326
|
-
{
|
|
327
|
-
"Test Case": "1,000,000 push",
|
|
328
|
-
"Latency Avg (ms)": "26.57",
|
|
329
|
-
"Min (ms)": "22.36",
|
|
330
|
-
"Max (ms)": "33.50",
|
|
331
|
-
"Stability": "±3.44%"
|
|
332
|
-
},
|
|
333
|
-
{
|
|
334
|
-
"Test Case": "1,000,000 push & pop",
|
|
335
|
-
"Latency Avg (ms)": "30.30",
|
|
336
|
-
"Min (ms)": "25.14",
|
|
337
|
-
"Max (ms)": "55.18",
|
|
338
|
-
"Stability": "±4.78%"
|
|
339
|
-
}
|
|
340
|
-
]
|
|
341
|
-
},
|
|
342
|
-
"binary-tree": {
|
|
343
|
-
"benchmarks": []
|
|
344
40
|
}
|
|
345
41
|
}
|