data-structure-typed 1.51.2 → 1.51.4

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.
Files changed (37) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/POSTS_zh-CN.md +54 -0
  3. package/README.md +198 -172
  4. package/benchmark/report.html +1 -37
  5. package/benchmark/report.json +3 -405
  6. package/dist/cjs/data-structures/binary-tree/binary-tree.js +2 -2
  7. package/dist/cjs/data-structures/binary-tree/binary-tree.js.map +1 -1
  8. package/dist/cjs/data-structures/binary-tree/bst.js +1 -1
  9. package/dist/cjs/data-structures/binary-tree/bst.js.map +1 -1
  10. package/dist/cjs/data-structures/index.d.ts +1 -1
  11. package/dist/cjs/data-structures/index.js +1 -1
  12. package/dist/cjs/data-structures/index.js.map +1 -1
  13. package/dist/cjs/utils/index.d.ts +1 -0
  14. package/dist/cjs/utils/index.js +1 -0
  15. package/dist/cjs/utils/index.js.map +1 -1
  16. package/dist/cjs/utils/number.d.ts +1 -0
  17. package/dist/cjs/utils/number.js +12 -0
  18. package/dist/cjs/utils/number.js.map +1 -0
  19. package/dist/mjs/data-structures/binary-tree/binary-tree.js +2 -2
  20. package/dist/mjs/data-structures/binary-tree/bst.js +1 -1
  21. package/dist/mjs/data-structures/index.d.ts +1 -1
  22. package/dist/mjs/data-structures/index.js +1 -1
  23. package/dist/mjs/utils/index.d.ts +1 -0
  24. package/dist/mjs/utils/index.js +1 -0
  25. package/dist/mjs/utils/number.d.ts +1 -0
  26. package/dist/mjs/utils/number.js +7 -0
  27. package/dist/umd/data-structure-typed.js +116 -108
  28. package/dist/umd/data-structure-typed.min.js +2 -2
  29. package/dist/umd/data-structure-typed.min.js.map +1 -1
  30. package/package.json +92 -69
  31. package/src/data-structures/binary-tree/binary-tree.ts +2 -2
  32. package/src/data-structures/binary-tree/bst.ts +1 -1
  33. package/src/data-structures/index.ts +1 -1
  34. package/src/utils/index.ts +1 -0
  35. package/src/utils/number.ts +9 -0
  36. package/test/performance/data-structures/tree/tree.test.ts +0 -0
  37. package/test/unit/data-structures/tree/tree.test.ts +0 -39
package/CHANGELOG.md CHANGED
@@ -8,7 +8,7 @@ All notable changes to this project will be documented in this file.
8
8
  - [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
9
9
  - [`auto-changelog`](https://github.com/CookPete/auto-changelog)
10
10
 
11
- ## [v1.51.2](https://github.com/zrwusa/data-structure-typed/compare/v1.35.0...main) (upcoming)
11
+ ## [v1.51.4](https://github.com/zrwusa/data-structure-typed/compare/v1.35.0...main) (upcoming)
12
12
 
13
13
  ### Changes
14
14
 
package/POSTS_zh-CN.md ADDED
@@ -0,0 +1,54 @@
1
+ Java有java.utils,C++有STL,那JavaScript和TypeScript长期以来没有一个顺手的数据结构和算法库
2
+
3
+ data-structure-typed就应运而生
4
+
5
+ ## 性能
6
+
7
+ ### 部分超越JavaScript内置的数据结构
8
+
9
+ ### 部分超越C++
10
+
11
+
12
+ ## 顺手程度
13
+
14
+ ### 亲密拥抱JavaScript,TypeScript和ES6
15
+
16
+ #### 提供与JavaScript中Array完全一致的API体验
17
+
18
+ #### 提供生成器
19
+
20
+
21
+ ### 基类中统一实现通用方法
22
+
23
+ ### 完整的OOP封装
24
+
25
+ #### 可复用性
26
+
27
+ #### 可扩展性
28
+
29
+ 为开发者提供继承所有数据结构的可能
30
+
31
+ ### 摒弃以往数据结构库中同时存在Set和Map
32
+
33
+ #### 原滋原味的基础数据结构
34
+
35
+ 不必分别记忆Set和Map的API
36
+
37
+
38
+ ## 内置算法
39
+
40
+ ## 可视化
41
+
42
+ ### print方法
43
+
44
+ ### 可视化工具
45
+
46
+ #### 数据结构可视化
47
+
48
+ #### 步进式调试
49
+
50
+ ## 多种模块系统的支持
51
+
52
+
53
+
54
+
package/README.md CHANGED
@@ -13,6 +13,35 @@
13
13
 
14
14
  [//]: # (<p><a href="https://github.com/zrwusa/data-structure-typed/blob/main/README.md">English</a> | <a href="https://github.com/zrwusa/data-structure-typed/blob/main/README_zh-CN.md">简体中文</a></p>)
15
15
 
16
+
17
+ ## Installation and Usage
18
+
19
+ ### npm
20
+
21
+ ```bash
22
+ npm i data-structure-typed --save
23
+ ```
24
+
25
+ ### yarn
26
+
27
+ ```bash
28
+ yarn add data-structure-typed
29
+ ```
30
+
31
+ ```js
32
+ import {
33
+ Heap, Graph, Queue, Deque, PriorityQueue, BST, Trie, DoublyLinkedList,
34
+ AVLTree, SinglyLinkedList, DirectedGraph, RedBlackTree, TreeMultiMap,
35
+ DirectedVertex, Stack, AVLTreeNode
36
+ } from 'data-structure-typed';
37
+ ```
38
+
39
+ If you only want to use a specific data structure independently, you can install it separately, for example, by running
40
+
41
+ ```bash
42
+ npm i heap-typed --save
43
+ ```
44
+
16
45
  ## Why
17
46
 
18
47
  Do you envy C++ with [STL]() (std::), Python with [collections](), and Java with [java.util]() ? Well, no need to envy
@@ -28,12 +57,6 @@ anymore! JavaScript and TypeScript now have [data-structure-typed]().**`Benchmar
28
57
 
29
58
  [//]: # (![Lines]&#40;https://img.shields.io/badge/lines-68.6%25-red.svg?style=flat&#41;)
30
59
 
31
- ### Data structures available
32
-
33
- We provide data structures that are not available in JS/TS
34
- Heap, Binary Tree, Red Black Tree, Linked List, Deque, Trie, Directed Graph, Undirected Graph, BST, AVL Tree, Priority
35
- Queue, Queue, Tree Multiset.
36
-
37
60
  ### Performance
38
61
 
39
62
  Performance surpasses that of native JS/TS
@@ -143,27 +166,177 @@ In [java.utils](), you need to memorize a table for all sequential data structur
143
166
 
144
167
  whereas in our [data-structure-typed](), you **only** need to remember four methods: `push`, `pop`, `shift`, and `unshift` for all sequential data structures(Queue, Deque, DoublyLinkedList, SinglyLinkedList and Array).
145
168
 
146
- ## Installation and Usage
147
-
148
- ### npm
149
-
150
- ```bash
151
- npm i data-structure-typed --save
152
- ```
153
-
154
- ### yarn
169
+ ### Data structures available
155
170
 
156
- ```bash
157
- yarn add data-structure-typed
158
- ```
171
+ We provide data structures that are not available in JS/TS
159
172
 
160
- ```js
161
- import {
162
- Heap, Graph, Queue, Deque, PriorityQueue, BST, Trie, DoublyLinkedList,
163
- AVLTree, SinglyLinkedList, DirectedGraph, RedBlackTree, TreeMultiMap,
164
- DirectedVertex, Stack, AVLTreeNode
165
- } from 'data-structure-typed';
166
- ```
173
+ <table style="display: table; width:100%; table-layout: fixed;">
174
+ <thead>
175
+ <tr>
176
+ <th>Data Structure</th>
177
+ <th>Unit Test</th>
178
+ <th>Perf Test</th>
179
+ <th>API Doc</th>
180
+ <th>NPM</th>
181
+ </tr>
182
+ </thead>
183
+ <tbody>
184
+ <tr>
185
+ <td>Binary Tree</td>
186
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
187
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
188
+ <td><a href="https://data-structure-typed-docs.vercel.app/classes/BinaryTree.html"><span>View</span></a></td>
189
+ <td><a href="https://www.npmjs.com/package/binary-tree-typed"><span>View</span></a></td>
190
+ </tr>
191
+ <tr>
192
+ <td>Binary Search Tree (BST)</td>
193
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
194
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
195
+ <td><a href="https://data-structure-typed-docs.vercel.app/classes/BST.html"><span>View</span></a></td>
196
+ <td><a href="https://www.npmjs.com/package/bst-typed"><span>View</span></a></td>
197
+ </tr>
198
+ <tr>
199
+ <td>AVL Tree</td>
200
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
201
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
202
+ <td><a href="https://data-structure-typed-docs.vercel.app/classes/AVLTree.html"><span>View</span></a></td>
203
+ <td><a href="https://www.npmjs.com/package/avl-tree-typed"><span>View</span></a></td>
204
+ </tr>
205
+ <tr>
206
+ <td>Red Black Tree</td>
207
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
208
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
209
+ <td><a href="https://data-structure-typed-docs.vercel.app/classes/RedBlackTree.html"><span>View</span></a></td>
210
+ <td><a href="https://www.npmjs.com/package/red-black-tree-typed"><span>View</span></a></td>
211
+ </tr>
212
+ <tr>
213
+ <td>Tree Multimap</td>
214
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
215
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
216
+ <td><a href="https://data-structure-typed-docs.vercel.app/classes/TreeMultiMap.html"><span>View</span></a></td>
217
+ <td><a href="https://www.npmjs.com/package/tree-multimap-typed"><span>View</span></a></td>
218
+ </tr>
219
+ <tr>
220
+ <td>Heap</td>
221
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
222
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
223
+ <td><a href="https://data-structure-typed-docs.vercel.app/classes/Heap.html"><span>View</span></a></td>
224
+ <td><a href="https://www.npmjs.com/package/heap-typed"><span>View</span></a></td>
225
+ </tr>
226
+ <tr>
227
+ <td>Priority Queue</td>
228
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
229
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
230
+ <td><a href="https://data-structure-typed-docs.vercel.app/classes/PriorityQueue.html"><span>View</span></a></td>
231
+ <td><a href="https://www.npmjs.com/package/priority-queue-typed"><span>View</span></a></td>
232
+ </tr>
233
+ <tr>
234
+ <td>Max Priority Queue</td>
235
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
236
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
237
+ <td><a href="https://data-structure-typed-docs.vercel.app/classes/MaxPriorityQueue.html"><span>View</span></a></td>
238
+ <td><a href="https://www.npmjs.com/package/max-priority-queue-typed"><span>View</span></a></td>
239
+ </tr>
240
+ <tr>
241
+ <td>Min Priority Queue</td>
242
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
243
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
244
+ <td><a href="https://data-structure-typed-docs.vercel.app/classes/MinPriorityQueue.html"><span>View</span></a></td>
245
+ <td><a href="https://www.npmjs.com/package/min-priority-queue-typed"><span>View</span></a></td>
246
+ </tr>
247
+ <tr>
248
+ <td>Trie</td>
249
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
250
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
251
+ <td><a href="https://data-structure-typed-docs.vercel.app/classes/Trie.html"><span>View</span></a></td>
252
+ <td><a href="https://www.npmjs.com/package/trie-typed"><span>View</span></a></td>
253
+ </tr>
254
+ <tr>
255
+ <td>Graph</td>
256
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
257
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
258
+ <td><a href="https://data-structure-typed-docs.vercel.app/classes/AbstractGraph.html"><span>View</span></a></td>
259
+ <td><a href="https://www.npmjs.com/package/graph-typed"><span>View</span></a></td>
260
+ </tr>
261
+ <tr>
262
+ <td>Directed Graph</td>
263
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
264
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
265
+ <td><a href="https://data-structure-typed-docs.vercel.app/classes/DirectedGraph.html"><span>View</span></a></td>
266
+ <td><a href="https://www.npmjs.com/package/directed-graph-typed"><span>View</span></a></td>
267
+ </tr>
268
+ <tr>
269
+ <td>Undirected Graph</td>
270
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
271
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
272
+ <td><a href="https://data-structure-typed-docs.vercel.app/classes/UndirectedGraph.html"><span>View</span></a></td>
273
+ <td><a href="https://www.npmjs.com/package/undirected-graph-typed"><span>View</span></a></td>
274
+ </tr>
275
+ <tr>
276
+ <td>Queue</td>
277
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
278
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
279
+ <td><a href="https://data-structure-typed-docs.vercel.app/classes/Queue.html"><span>View</span></a></td>
280
+ <td><a href="https://www.npmjs.com/package/queue-graph-typed"><span>View</span></a></td>
281
+ </tr>
282
+ <tr>
283
+ <td>Deque</td>
284
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
285
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
286
+ <td><a href="https://data-structure-typed-docs.vercel.app/classes/Deque.html"><span>View</span></a></td>
287
+ <td><a href="https://www.npmjs.com/package/deque-graph-typed"><span>View</span></a></td>
288
+ </tr>
289
+ <tr>
290
+ <td>Hash Map</td>
291
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
292
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
293
+ <td><a href="https://data-structure-typed-docs.vercel.app/classes/HashMap.html"><span>View</span></a></td>
294
+ <td><a href="https://www.npmjs.com/package/hashmap-typed"><span></span></a></td>
295
+ </tr>
296
+ <tr>
297
+ <td>Linked List</td>
298
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
299
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
300
+ <td><a href="https://data-structure-typed-docs.vercel.app/classes/SinglyLinkedList.html"><span>View</span></a></td>
301
+ <td><a href="https://www.npmjs.com/package/linked-list-typed"><span>View</span></a></td>
302
+ </tr>
303
+ <tr>
304
+ <td>Singly Linked List</td>
305
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
306
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
307
+ <td><a href="https://data-structure-typed-docs.vercel.app/classes/SinglyLinkedList.html"><span>View</span></a></td>
308
+ <td><a href="https://www.npmjs.com/package/singly-linked-list-typed"><span>View</span></a></td>
309
+ </tr>
310
+ <tr>
311
+ <td>Doubly Linked List</td>
312
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
313
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
314
+ <td><a href="https://data-structure-typed-docs.vercel.app/classes/DoublyLinkedList.html"><span>View</span></a></td>
315
+ <td><a href="https://www.npmjs.com/package/doubly-linked-list-typed"><span>View</span></a></td>
316
+ </tr>
317
+ <tr>
318
+ <td>Stack</td>
319
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
320
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
321
+ <td><a href="https://data-structure-typed-docs.vercel.app/classes/Stack.html"><span>View</span></a></td>
322
+ <td><a href="https://www.npmjs.com/package/stack-typed"><span>View</span></a></td>
323
+ </tr>
324
+ <tr>
325
+ <td>Segment Tree</td>
326
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
327
+ <td></td>
328
+ <td><a href="https://data-structure-typed-docs.vercel.app/classes/SegmentTree.html"><span>View</span></a></td>
329
+ <td><a href="https://www.npmjs.com/package/segment-tree-typed"><span></span></a></td>
330
+ </tr>
331
+ <tr>
332
+ <td>Binary Indexed Tree</td>
333
+ <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
334
+ <td></td>
335
+ <td><a href="https://data-structure-typed-docs.vercel.app/classes/BinaryIndexedTree.html"><span>View</span></a></td>
336
+ <td><a href="https://www.npmjs.com/package/binary-indexed-tree-typed"><span></span></a></td>
337
+ </tr>
338
+ </tbody>
339
+ </table>
167
340
 
168
341
  ## Vivid Examples
169
342
 
@@ -520,153 +693,6 @@ Array.from(dijkstraResult?.seen ?? []).map(vertex => vertex.key) // ['A', 'B', '
520
693
 
521
694
  <a href="https://github.com/zrwusa/vivid-algorithm" target="_blank">Examples Repository</a>
522
695
 
523
- ## Data Structures
524
-
525
- <table style="display: table; width:100%; table-layout: fixed;">
526
- <thead>
527
- <tr>
528
- <th>Data Structure</th>
529
- <th>Unit Test</th>
530
- <th>Performance Test</th>
531
- <th>API Docs</th>
532
- </tr>
533
- </thead>
534
- <tbody>
535
- <tr>
536
- <td>Binary Tree</td>
537
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
538
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
539
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/BinaryTree.html"><span>View</span></a></td>
540
- </tr>
541
- <tr>
542
- <td>Binary Search Tree (BST)</td>
543
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
544
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
545
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/BST.html"><span>View</span></a></td>
546
- </tr>
547
- <tr>
548
- <td>AVL Tree</td>
549
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
550
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
551
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/AVLTree.html"><span>View</span></a></td>
552
- </tr>
553
- <tr>
554
- <td>Red Black Tree</td>
555
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
556
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
557
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/RedBlackTree.html"><span>View</span></a></td>
558
- </tr>
559
- <tr>
560
- <td>Tree Multimap</td>
561
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
562
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
563
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/TreeMultiMap.html"><span>View</span></a></td>
564
- </tr>
565
- <tr>
566
- <td>Heap</td>
567
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
568
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
569
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/Heap.html"><span>View</span></a></td>
570
- </tr>
571
- <tr>
572
- <td>Priority Queue</td>
573
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
574
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
575
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/PriorityQueue.html"><span>View</span></a></td>
576
- </tr>
577
- <tr>
578
- <td>Max Priority Queue</td>
579
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
580
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
581
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/MaxPriorityQueue.html"><span>View</span></a></td>
582
- </tr>
583
- <tr>
584
- <td>Min Priority Queue</td>
585
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
586
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
587
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/MinPriorityQueue.html"><span>View</span></a></td>
588
- </tr>
589
- <tr>
590
- <td>Trie</td>
591
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
592
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
593
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/Trie.html"><span>View</span></a></td>
594
- </tr>
595
- <tr>
596
- <td>Graph</td>
597
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
598
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
599
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/AbstractGraph.html"><span>View</span></a></td>
600
- </tr>
601
- <tr>
602
- <td>Directed Graph</td>
603
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
604
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
605
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/DirectedGraph.html"><span>View</span></a></td>
606
- </tr>
607
- <tr>
608
- <td>Undirected Graph</td>
609
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
610
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
611
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/UndirectedGraph.html"><span>View</span></a></td>
612
- </tr>
613
- <tr>
614
- <td>Queue</td>
615
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
616
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
617
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/Queue.html"><span>View</span></a></td>
618
- </tr>
619
- <tr>
620
- <td>Deque</td>
621
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
622
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
623
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/Deque.html"><span>View</span></a></td>
624
- </tr>
625
- <tr>
626
- <td>Hash Map</td>
627
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
628
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
629
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/HashMap.html"><span>View</span></a></td>
630
- </tr>
631
- <tr>
632
- <td>Linked List</td>
633
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
634
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
635
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/SinglyLinkedList.html"><span>View</span></a></td>
636
- </tr>
637
- <tr>
638
- <td>Singly Linked List</td>
639
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
640
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
641
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/SinglyLinkedList.html"><span>View</span></a></td>
642
- </tr>
643
- <tr>
644
- <td>Doubly Linked List</td>
645
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
646
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
647
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/DoublyLinkedList.html"><span>View</span></a></td>
648
- </tr>
649
- <tr>
650
- <td>Stack</td>
651
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
652
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
653
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/Stack.html"><span>View</span></a></td>
654
- </tr>
655
- <tr>
656
- <td>Segment Tree</td>
657
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
658
- <td></td>
659
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/SegmentTree.html"><span>View</span></a></td>
660
- </tr>
661
- <tr>
662
- <td>Binary Indexed Tree</td>
663
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
664
- <td></td>
665
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/BinaryIndexedTree.html"><span>View</span></a></td>
666
- </tr>
667
- </tbody>
668
- </table>
669
-
670
696
  ## Benchmark
671
697
 
672
698
  MacBook Pro (15-inch, 2018)
@@ -42,44 +42,8 @@
42
42
  </head>
43
43
  <body>
44
44
  <div id="json-to-html"><div class="json-to-html-collapse clearfix 0">
45
- <div class='collapsible level0' ><span class='json-to-html-label'>heap</span></div>
46
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>100,000 add</td><td>6.44</td><td>155.39</td><td>1.89e-4</td></tr><tr><td>100,000 add & poll</td><td>31.54</td><td>31.71</td><td>7.91e-4</td></tr></table></div>
47
- </div><div class="json-to-html-collapse clearfix 0">
48
- <div class='collapsible level0' ><span class='json-to-html-label'>rb-tree</span></div>
49
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>100,000 add</td><td>55.64</td><td>17.97</td><td>3.93e-4</td></tr><tr><td>100,000 add randomly</td><td>70.35</td><td>14.21</td><td>0.00</td></tr><tr><td>100,000 get</td><td>115.51</td><td>8.66</td><td>0.00</td></tr><tr><td>100,000 iterator</td><td>27.64</td><td>36.18</td><td>0.01</td></tr><tr><td>100,000 add & delete orderly</td><td>120.73</td><td>8.28</td><td>0.00</td></tr><tr><td>100,000 add & delete randomly</td><td>223.37</td><td>4.48</td><td>0.00</td></tr></table></div>
50
- </div><div class="json-to-html-collapse clearfix 0">
51
- <div class='collapsible level0' ><span class='json-to-html-label'>queue</span></div>
52
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>1,000,000 push</td><td>42.87</td><td>23.33</td><td>0.01</td></tr><tr><td>100,000 push & shift</td><td>4.87</td><td>205.17</td><td>6.94e-4</td></tr><tr><td>Native JS Array 100,000 push & shift</td><td>2196.84</td><td>0.46</td><td>0.19</td></tr></table></div>
53
- </div><div class="json-to-html-collapse clearfix 0">
54
- <div class='collapsible level0' ><span class='json-to-html-label'>deque</span></div>
55
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>1,000,000 push</td><td>23.68</td><td>42.22</td><td>0.00</td></tr><tr><td>1,000,000 push & pop</td><td>30.68</td><td>32.60</td><td>0.00</td></tr><tr><td>1,000,000 push & shift</td><td>30.49</td><td>32.80</td><td>0.00</td></tr><tr><td>100,000 push & shift</td><td>3.21</td><td>311.51</td><td>2.41e-4</td></tr><tr><td>Native JS Array 100,000 push & shift</td><td>2510.08</td><td>0.40</td><td>0.34</td></tr><tr><td>100,000 unshift & shift</td><td>2.89</td><td>346.57</td><td>2.98e-4</td></tr><tr><td>Native JS Array 100,000 unshift & shift</td><td>4581.65</td><td>0.22</td><td>0.40</td></tr></table></div>
56
- </div><div class="json-to-html-collapse clearfix 0">
57
- <div class='collapsible level0' ><span class='json-to-html-label'>hash-map</span></div>
58
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>1,000,000 set</td><td>120.66</td><td>8.29</td><td>0.03</td></tr><tr><td>Native JS Map 1,000,000 set</td><td>202.57</td><td>4.94</td><td>0.01</td></tr><tr><td>Native JS Set 1,000,000 add</td><td>167.46</td><td>5.97</td><td>0.01</td></tr><tr><td>1,000,000 set & get</td><td>115.60</td><td>8.65</td><td>0.01</td></tr><tr><td>Native JS Map 1,000,000 set & get</td><td>265.34</td><td>3.77</td><td>0.01</td></tr><tr><td>Native JS Set 1,000,000 add & has</td><td>167.85</td><td>5.96</td><td>0.01</td></tr><tr><td>1,000,000 ObjKey set & get</td><td>308.73</td><td>3.24</td><td>0.03</td></tr><tr><td>Native JS Map 1,000,000 ObjKey set & get</td><td>300.60</td><td>3.33</td><td>0.03</td></tr><tr><td>Native JS Set 1,000,000 ObjKey add & has</td><td>270.49</td><td>3.70</td><td>0.04</td></tr></table></div>
59
- </div><div class="json-to-html-collapse clearfix 0">
60
- <div class='collapsible level0' ><span class='json-to-html-label'>trie</span></div>
61
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>100,000 push</td><td>45.79</td><td>21.84</td><td>7.32e-4</td></tr><tr><td>100,000 getWords</td><td>87.85</td><td>11.38</td><td>0.00</td></tr></table></div>
62
- </div><div class="json-to-html-collapse clearfix 0">
63
45
  <div class='collapsible level0' ><span class='json-to-html-label'>avl-tree</span></div>
64
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>100,000 add</td><td>260.78</td><td>3.83</td><td>0.00</td></tr><tr><td>100,000 add randomly</td><td>306.61</td><td>3.26</td><td>0.00</td></tr><tr><td>100,000 get</td><td>140.27</td><td>7.13</td><td>0.00</td></tr><tr><td>100,000 iterator</td><td>29.90</td><td>33.45</td><td>0.01</td></tr><tr><td>100,000 add & delete orderly</td><td>428.76</td><td>2.33</td><td>0.00</td></tr><tr><td>100,000 add & delete randomly</td><td>580.74</td><td>1.72</td><td>0.00</td></tr></table></div>
65
- </div><div class="json-to-html-collapse clearfix 0">
66
- <div class='collapsible level0' ><span class='json-to-html-label'>binary-tree-overall</span></div>
67
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>10,000 RBTree add</td><td>5.74</td><td>174.10</td><td>9.29e-5</td></tr><tr><td>10,000 RBTree add & delete randomly</td><td>18.83</td><td>53.10</td><td>1.49e-4</td></tr><tr><td>10,000 RBTree get</td><td>0.77</td><td>1290.55</td><td>7.33e-6</td></tr><tr><td>10,000 AVLTree add</td><td>22.60</td><td>44.25</td><td>2.14e-4</td></tr><tr><td>10,000 AVLTree get</td><td>10.63</td><td>94.08</td><td>1.02e-4</td></tr><tr><td>10,000 AVLTree add & delete randomly</td><td>44.17</td><td>22.64</td><td>3.52e-4</td></tr></table></div>
68
- </div><div class="json-to-html-collapse clearfix 0">
69
- <div class='collapsible level0' ><span class='json-to-html-label'>directed-graph</span></div>
70
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>1,000 addVertex</td><td>0.11</td><td>9501.69</td><td>1.02e-6</td></tr><tr><td>1,000 addEdge</td><td>6.18</td><td>161.81</td><td>4.27e-4</td></tr><tr><td>1,000 getVertex</td><td>0.05</td><td>2.16e+4</td><td>3.23e-7</td></tr><tr><td>1,000 getEdge</td><td>23.31</td><td>42.90</td><td>0.00</td></tr><tr><td>tarjan</td><td>206.06</td><td>4.85</td><td>0.01</td></tr><tr><td>topologicalSort</td><td>181.65</td><td>5.51</td><td>0.01</td></tr></table></div>
71
- </div><div class="json-to-html-collapse clearfix 0">
72
- <div class='collapsible level0' ><span class='json-to-html-label'>doubly-linked-list</span></div>
73
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>1,000,000 push</td><td>207.88</td><td>4.81</td><td>0.04</td></tr><tr><td>1,000,000 unshift</td><td>214.33</td><td>4.67</td><td>0.06</td></tr><tr><td>1,000,000 unshift & shift</td><td>185.54</td><td>5.39</td><td>0.04</td></tr><tr><td>1,000,000 addBefore</td><td>308.66</td><td>3.24</td><td>0.08</td></tr></table></div>
74
- </div><div class="json-to-html-collapse clearfix 0">
75
- <div class='collapsible level0' ><span class='json-to-html-label'>singly-linked-list</span></div>
76
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>1,000,000 push & shift</td><td>202.61</td><td>4.94</td><td>0.04</td></tr><tr><td>10,000 push & pop</td><td>219.69</td><td>4.55</td><td>0.02</td></tr><tr><td>10,000 addBefore</td><td>247.13</td><td>4.05</td><td>0.01</td></tr></table></div>
77
- </div><div class="json-to-html-collapse clearfix 0">
78
- <div class='collapsible level0' ><span class='json-to-html-label'>priority-queue</span></div>
79
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>100,000 add</td><td>27.36</td><td>36.55</td><td>9.92e-4</td></tr><tr><td>100,000 add & poll</td><td>146.72</td><td>6.82</td><td>6.84e-4</td></tr></table></div>
80
- </div><div class="json-to-html-collapse clearfix 0">
81
- <div class='collapsible level0' ><span class='json-to-html-label'>stack</span></div>
82
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>1,000,000 push</td><td>39.36</td><td>25.41</td><td>0.01</td></tr><tr><td>1,000,000 push & pop</td><td>47.86</td><td>20.89</td><td>0.01</td></tr></table></div>
46
+ <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>100,000 add & delete orderly</td><td>0.00e+0</td><td>0.00e+0</td><td>0.00e+0</td></tr></table></div>
83
47
  </div>
84
48
 
85
49
  </div>