avl-tree-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.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
  ![GitHub top language](https://img.shields.io/github/languages/top/zrwusa/data-structure-typed)
3
3
  ![npm](https://img.shields.io/npm/dw/avl-tree-typed)
4
4
  ![eslint](https://aleen42.github.io/badges/src/eslint.svg)
5
- ![npm package minimized gzipped size (select exports)](https://img.shields.io/bundlejs/size/avl-tree-typed)
5
+ ![npm bundle size](https://img.shields.io/bundlephobia/minzip/avl-tree-typed)
6
6
  ![npm bundle size](https://img.shields.io/bundlephobia/min/avl-tree-typed)
7
7
  ![npm](https://img.shields.io/npm/v/avl-tree-typed)
8
8
 
@@ -256,131 +256,11 @@ lastBFSNodes[0].id // 12
256
256
  </thead>
257
257
  <tbody>
258
258
  <tr>
259
- <td>Binary Tree</td>
260
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
261
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
262
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/BinaryTree.html"><span>Binary Tree</span></a></td>
263
- </tr>
264
- <tr>
265
- <td>Binary Search Tree (BST)</td>
266
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
267
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
268
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/BST.html"><span>BST</span></a></td>
269
- </tr>
270
- <tr>
271
259
  <td>AVL Tree</td>
272
260
  <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
273
261
  <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
274
262
  <td><a href="https://data-structure-typed-docs.vercel.app/classes/AVLTree.html"><span>AVLTree</span></a></td>
275
263
  </tr>
276
- <tr>
277
- <td>Red Black Tree</td>
278
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
279
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
280
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/RedBlackTree.html"><span>RedBlackTree</span></a></td>
281
- </tr>
282
- <tr>
283
- <td>Tree Multiset</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/TreeMultimap.html"><span>TreeMultimap</span></a></td>
287
- </tr>
288
- <tr>
289
- <td>Segment Tree</td>
290
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
291
- <td></td>
292
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/SegmentTree.html"><span>SegmentTree</span></a></td>
293
- </tr>
294
- <tr>
295
- <td>Binary Indexed Tree</td>
296
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
297
- <td></td>
298
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/BinaryIndexedTree.html"><span>BinaryIndexedTree</span></a></td>
299
- </tr>
300
- <tr>
301
- <td>Heap</td>
302
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
303
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
304
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/Heap.html"><span>Heap</span></a></td>
305
- </tr>
306
- <tr>
307
- <td>Priority Queue</td>
308
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
309
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
310
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/PriorityQueue.html"><span>PriorityQueue</span></a></td>
311
- </tr>
312
- <tr>
313
- <td>Max Priority Queue</td>
314
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
315
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
316
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/MaxPriorityQueue.html"><span>MaxPriorityQueue</span></a></td>
317
- </tr>
318
- <tr>
319
- <td>Min Priority Queue</td>
320
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
321
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
322
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/MinPriorityQueue.html"><span>MinPriorityQueue</span></a></td>
323
- </tr>
324
- <tr>
325
- <td>Trie</td>
326
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
327
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
328
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/Trie.html"><span>Trie</span></a></td>
329
- </tr>
330
- <tr>
331
- <td>Graph</td>
332
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
333
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
334
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/AbstractGraph.html"><span>AbstractGraph</span></a></td>
335
- </tr>
336
- <tr>
337
- <td>Directed Graph</td>
338
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
339
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
340
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/DirectedGraph.html"><span>DirectedGraph</span></a></td>
341
- </tr>
342
- <tr>
343
- <td>Undirected Graph</td>
344
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
345
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
346
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/UndirectedGraph.html"><span>UndirectedGraph</span></a></td>
347
- </tr>
348
- <tr>
349
- <td>Queue</td>
350
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
351
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
352
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/Queue.html"><span>Queue</span></a></td>
353
- </tr>
354
- <tr>
355
- <td>Deque</td>
356
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
357
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
358
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/Deque.html"><span>Deque</span></a></td>
359
- </tr>
360
- <tr>
361
- <td>Linked List</td>
362
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
363
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
364
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/SinglyLinkedList.html"><span>SinglyLinkedList</span></a></td>
365
- </tr>
366
- <tr>
367
- <td>Singly Linked List</td>
368
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
369
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
370
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/SinglyLinkedList.html"><span>SinglyLinkedList</span></a></td>
371
- </tr>
372
- <tr>
373
- <td>Doubly Linked List</td>
374
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
375
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
376
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/DoublyLinkedList.html"><span>DoublyLinkedList</span></a></td>
377
- </tr>
378
- <tr>
379
- <td>Stack</td>
380
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
381
- <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
382
- <td><a href="https://data-structure-typed-docs.vercel.app/classes/Stack.html"><span>Stack</span></a></td>
383
- </tr>
384
264
  </tbody>
385
265
  </table>
386
266
 
@@ -396,168 +276,14 @@ lastBFSNodes[0].id // 12
396
276
  </tr>
397
277
  </thead>
398
278
  <tbody>
279
+
399
280
  <tr>
400
- <td>Heap&lt;E&gt;</td>
401
- <td>priority_queue&lt;T&gt;</td>
402
- <td>PriorityQueue&lt;E&gt;</td>
403
- <td>heapq</td>
404
- </tr>
405
- <tr>
406
- <td>Deque&lt;E&gt;</td>
407
- <td>deque&lt;T&gt;</td>
408
- <td>ArrayDeque&lt;E&gt;</td>
409
- <td>deque</td>
410
- </tr>
411
- <tr>
412
- <td>Queue&lt;E&gt;</td>
413
- <td>queue&lt;T&gt;</td>
414
- <td>Queue&lt;E&gt;</td>
415
- <td>-</td>
416
- </tr>
417
- <tr>
418
- <td>HashMap&lt;K, V&gt;</td>
419
- <td>unordered_map&lt;K, V&gt;</td>
420
- <td>HashMap&lt;K, V&gt;</td>
421
- <td>defaultdict</td>
422
- </tr>
423
- <tr>
424
- <td>DoublyLinkedList&lt;E&gt;</td>
425
- <td>list&lt;T&gt;</td>
426
- <td>LinkedList&lt;E&gt;</td>
427
- <td>-</td>
428
- </tr>
429
- <tr>
430
- <td>SinglyLinkedList&lt;E&gt;</td>
431
- <td>-</td>
432
- <td>-</td>
433
- <td>-</td>
434
- </tr>
435
- <tr>
436
- <td>BinaryTree&lt;K, V&gt;</td>
437
- <td>-</td>
438
- <td>-</td>
439
- <td>-</td>
440
- </tr>
441
- <tr>
442
- <td>BST&lt;K, V&gt;</td>
443
- <td>-</td>
444
- <td>-</td>
445
- <td>-</td>
446
- </tr>
447
- <tr>
448
- <td>RedBlackTree&lt;E&gt;</td>
449
- <td>set&lt;T&gt;</td>
450
- <td>TreeSet&lt;E&gt;</td>
451
- <td>-</td>
452
- </tr>
453
- <tr>
454
- <td>RedBlackTree&lt;K, V&gt;</td>
455
- <td>map&lt;K, V&gt;</td>
456
- <td>TreeMap&lt;K, V&gt;</td>
457
- <td>-</td>
458
- </tr>
459
- <tr>
460
- <td>TreeMultimap&lt;K, V&gt;</td>
461
- <td>multimap&lt;K, V&gt;</td>
462
- <td>-</td>
463
- <td>-</td>
464
- </tr>
465
- <tr>
466
- <td>-</td>
467
- <td>multiset&lt;T&gt;</td>
468
- <td>-</td>
469
- <td>-</td>
470
- </tr>
471
- <tr>
472
- <td>Trie</td>
473
- <td>-</td>
474
- <td>-</td>
475
- <td>-</td>
476
- </tr>
477
- <tr>
478
- <td>DirectedGraph&lt;V, E&gt;</td>
479
- <td>-</td>
480
- <td>-</td>
481
- <td>-</td>
482
- </tr>
483
- <tr>
484
- <td>UndirectedGraph&lt;V, E&gt;</td>
485
- <td>-</td>
486
- <td>-</td>
487
- <td>-</td>
488
- </tr>
489
- <tr>
490
- <td>PriorityQueue&lt;E&gt;</td>
491
- <td>priority_queue&lt;T&gt;</td>
492
- <td>PriorityQueue&lt;E&gt;</td>
493
- <td>-</td>
494
- </tr>
495
- <tr>
496
- <td>Array&lt;E&gt;</td>
497
- <td>vector&lt;T&gt;</td>
498
- <td>ArrayList&lt;E&gt;</td>
499
- <td>list</td>
500
- </tr>
501
- <tr>
502
- <td>Stack&lt;E&gt;</td>
503
- <td>stack&lt;T&gt;</td>
504
- <td>Stack&lt;E&gt;</td>
505
- <td>-</td>
506
- </tr>
507
- <tr>
508
- <td>Set&lt;E&gt;</td>
509
- <td>-</td>
510
- <td>HashSet&lt;E&gt;</td>
511
- <td>set</td>
512
- </tr>
513
- <tr>
514
- <td>Map&lt;K, V&gt;</td>
515
- <td>-</td>
516
- <td>HashMap&lt;K, V&gt;</td>
517
- <td>dict</td>
518
- </tr>
519
- <tr>
520
- <td>-</td>
521
- <td>unordered_set&lt;T&gt;</td>
522
- <td>HashSet&lt;E&gt;</td>
523
- <td>-</td>
524
- </tr>
525
- <tr>
526
- <td>Map&lt;K, V&gt;</td>
527
- <td>-</td>
528
- <td>-</td>
529
- <td>OrderedDict</td>
530
- </tr>
531
- <tr>
532
- <td>-</td>
533
- <td>unordered_multiset</td>
534
- <td>-</td>
535
- <td>Counter</td>
536
- </tr>
537
- <tr>
538
- <td>-</td>
539
- <td>-</td>
540
- <td>LinkedHashSet&lt;E&gt;</td>
541
- <td>-</td>
542
- </tr>
543
- <tr>
544
- <td>HashMap&lt;K, V&gt;</td>
545
- <td>-</td>
546
- <td>LinkedHashMap&lt;K, V&gt;</td>
547
- <td>-</td>
548
- </tr>
549
- <tr>
281
+ <td>AVLTree&lt;K, V&gt;</td>
550
282
  <td>-</td>
551
- <td>unordered_multimap&lt;K, V&gt;</td>
552
- <td>-</td>
553
- <td>-</td>
554
- </tr>
555
- <tr>
556
- <td>-</td>
557
- <td>bitset&lt;N&gt;</td>
558
283
  <td>-</td>
559
284
  <td>-</td>
560
285
  </tr>
286
+
561
287
  </tbody>
562
288
  </table>
563
289
 
@@ -567,51 +293,6 @@ lastBFSNodes[0].id // 12
567
293
  <div class="json-to-html-collapse clearfix 0">
568
294
  <div class='collapsible level0' ><span class='json-to-html-label'>avl-tree</span></div>
569
295
  <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 add randomly</td><td>31.32</td><td>31.93</td><td>3.67e-4</td></tr><tr><td>10,000 add & delete randomly</td><td>70.90</td><td>14.10</td><td>0.00</td></tr><tr><td>10,000 addMany</td><td>40.58</td><td>24.64</td><td>4.87e-4</td></tr><tr><td>10,000 get</td><td>27.31</td><td>36.62</td><td>2.00e-4</td></tr></table></div>
570
- </div><div class="json-to-html-collapse clearfix 0">
571
- <div class='collapsible level0' ><span class='json-to-html-label'>binary-tree</span></div>
572
- <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 add randomly</td><td>12.35</td><td>80.99</td><td>7.17e-5</td></tr><tr><td>1,000 add & delete randomly</td><td>15.98</td><td>62.58</td><td>7.98e-4</td></tr><tr><td>1,000 addMany</td><td>10.96</td><td>91.27</td><td>0.00</td></tr><tr><td>1,000 get</td><td>18.61</td><td>53.73</td><td>0.00</td></tr><tr><td>1,000 dfs</td><td>164.20</td><td>6.09</td><td>0.04</td></tr><tr><td>1,000 bfs</td><td>58.84</td><td>17.00</td><td>0.01</td></tr><tr><td>1,000 morris</td><td>256.66</td><td>3.90</td><td>7.70e-4</td></tr></table></div>
573
- </div><div class="json-to-html-collapse clearfix 0">
574
- <div class='collapsible level0' ><span class='json-to-html-label'>bst</span></div>
575
- <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 add randomly</td><td>31.59</td><td>31.66</td><td>2.74e-4</td></tr><tr><td>10,000 add & delete randomly</td><td>74.56</td><td>13.41</td><td>8.32e-4</td></tr><tr><td>10,000 addMany</td><td>29.16</td><td>34.30</td><td>0.00</td></tr><tr><td>10,000 get</td><td>29.24</td><td>34.21</td><td>0.00</td></tr></table></div>
576
- </div><div class="json-to-html-collapse clearfix 0">
577
- <div class='collapsible level0' ><span class='json-to-html-label'>rb-tree</span></div>
578
- <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>85.85</td><td>11.65</td><td>0.00</td></tr><tr><td>100,000 add & delete randomly</td><td>211.54</td><td>4.73</td><td>0.00</td></tr><tr><td>100,000 getNode</td><td>37.92</td><td>26.37</td><td>1.65e-4</td></tr></table></div>
579
- </div><div class="json-to-html-collapse clearfix 0">
580
- <div class='collapsible level0' ><span class='json-to-html-label'>comparison</span></div>
581
- <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>SRC PQ 10,000 add</td><td>0.57</td><td>1748.73</td><td>4.96e-6</td></tr><tr><td>CJS PQ 10,000 add</td><td>0.57</td><td>1746.69</td><td>4.91e-6</td></tr><tr><td>MJS PQ 10,000 add</td><td>0.57</td><td>1749.68</td><td>4.43e-6</td></tr><tr><td>SRC PQ 10,000 add & pop</td><td>3.47</td><td>288.14</td><td>6.38e-4</td></tr><tr><td>CJS PQ 10,000 add & pop</td><td>3.39</td><td>295.36</td><td>3.90e-5</td></tr><tr><td>MJS PQ 10,000 add & pop</td><td>3.37</td><td>297.17</td><td>3.03e-5</td></tr></table></div>
582
- </div><div class="json-to-html-collapse clearfix 0">
583
- <div class='collapsible level0' ><span class='json-to-html-label'>directed-graph</span></div>
584
- <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.10</td><td>9534.93</td><td>8.72e-7</td></tr><tr><td>1,000 addEdge</td><td>6.30</td><td>158.67</td><td>0.00</td></tr><tr><td>1,000 getVertex</td><td>0.05</td><td>2.16e+4</td><td>3.03e-7</td></tr><tr><td>1,000 getEdge</td><td>22.31</td><td>44.82</td><td>0.00</td></tr><tr><td>tarjan</td><td>210.90</td><td>4.74</td><td>0.01</td></tr><tr><td>tarjan all</td><td>214.72</td><td>4.66</td><td>0.01</td></tr><tr><td>topologicalSort</td><td>172.52</td><td>5.80</td><td>0.00</td></tr></table></div>
585
- </div><div class="json-to-html-collapse clearfix 0">
586
- <div class='collapsible level0' ><span class='json-to-html-label'>hash-map</span></div>
587
- <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>275.88</td><td>3.62</td><td>0.12</td></tr><tr><td>1,000,000 Map set</td><td>211.66</td><td>4.72</td><td>0.01</td></tr><tr><td>1,000,000 Set add</td><td>177.72</td><td>5.63</td><td>0.02</td></tr><tr><td>1,000,000 set & get</td><td>317.60</td><td>3.15</td><td>0.02</td></tr><tr><td>1,000,000 Map set & get</td><td>274.99</td><td>3.64</td><td>0.03</td></tr><tr><td>1,000,000 Set add & has</td><td>172.23</td><td>5.81</td><td>0.02</td></tr><tr><td>1,000,000 ObjKey set & get</td><td>929.40</td><td>1.08</td><td>0.07</td></tr><tr><td>1,000,000 Map ObjKey set & get</td><td>310.02</td><td>3.23</td><td>0.05</td></tr><tr><td>1,000,000 Set ObjKey add & has</td><td>283.28</td><td>3.53</td><td>0.04</td></tr></table></div>
588
- </div><div class="json-to-html-collapse clearfix 0">
589
- <div class='collapsible level0' ><span class='json-to-html-label'>heap</span></div>
590
- <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 add & pop</td><td>5.80</td><td>172.35</td><td>8.78e-5</td></tr><tr><td>10,000 fib add & pop</td><td>357.92</td><td>2.79</td><td>0.00</td></tr></table></div>
591
- </div><div class="json-to-html-collapse clearfix 0">
592
- <div class='collapsible level0' ><span class='json-to-html-label'>doubly-linked-list</span></div>
593
- <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>221.57</td><td>4.51</td><td>0.03</td></tr><tr><td>1,000,000 unshift</td><td>229.02</td><td>4.37</td><td>0.07</td></tr><tr><td>1,000,000 unshift & shift</td><td>169.21</td><td>5.91</td><td>0.02</td></tr><tr><td>1,000,000 insertBefore</td><td>314.48</td><td>3.18</td><td>0.07</td></tr></table></div>
594
- </div><div class="json-to-html-collapse clearfix 0">
595
- <div class='collapsible level0' ><span class='json-to-html-label'>singly-linked-list</span></div>
596
- <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 push & pop</td><td>212.98</td><td>4.70</td><td>0.01</td></tr><tr><td>10,000 insertBefore</td><td>250.68</td><td>3.99</td><td>0.01</td></tr></table></div>
597
- </div><div class="json-to-html-collapse clearfix 0">
598
- <div class='collapsible level0' ><span class='json-to-html-label'>max-priority-queue</span></div>
599
- <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 refill & poll</td><td>8.91</td><td>112.29</td><td>2.26e-4</td></tr></table></div>
600
- </div><div class="json-to-html-collapse clearfix 0">
601
- <div class='collapsible level0' ><span class='json-to-html-label'>priority-queue</span></div>
602
- <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 & pop</td><td>103.59</td><td>9.65</td><td>0.00</td></tr></table></div>
603
- </div><div class="json-to-html-collapse clearfix 0">
604
- <div class='collapsible level0' ><span class='json-to-html-label'>deque</span></div>
605
- <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>14.55</td><td>68.72</td><td>6.91e-4</td></tr><tr><td>1,000,000 push & pop</td><td>23.40</td><td>42.73</td><td>5.94e-4</td></tr><tr><td>1,000,000 push & shift</td><td>24.41</td><td>40.97</td><td>1.45e-4</td></tr><tr><td>1,000,000 unshift & shift</td><td>22.56</td><td>44.32</td><td>1.30e-4</td></tr></table></div>
606
- </div><div class="json-to-html-collapse clearfix 0">
607
- <div class='collapsible level0' ><span class='json-to-html-label'>queue</span></div>
608
- <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.90</td><td>25.07</td><td>0.01</td></tr><tr><td>1,000,000 push & shift</td><td>81.79</td><td>12.23</td><td>0.00</td></tr></table></div>
609
- </div><div class="json-to-html-collapse clearfix 0">
610
- <div class='collapsible level0' ><span class='json-to-html-label'>stack</span></div>
611
- <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>37.60</td><td>26.60</td><td>0.00</td></tr><tr><td>1,000,000 push & pop</td><td>47.01</td><td>21.27</td><td>0.00</td></tr></table></div>
612
- </div><div class="json-to-html-collapse clearfix 0">
613
- <div class='collapsible level0' ><span class='json-to-html-label'>trie</span></div>
614
- <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.97</td><td>21.76</td><td>0.00</td></tr><tr><td>100,000 getWords</td><td>66.20</td><td>15.11</td><td>0.00</td></tr></table></div>
615
296
  </div>
616
297
 
617
298
  [//]: # (No deletion!!! End of Replace Section)
@@ -641,13 +322,6 @@ lastBFSNodes[0].id // 12
641
322
  </td>
642
323
  <td>Iteration</td>
643
324
  </tr>
644
- <tr>
645
- <td>Graph DFS</td>
646
- <td>Traverse a graph in a depth-first manner, starting from a given node, exploring along one path as deeply as
647
- possible, and backtracking to explore other paths. Used for finding connected components, paths, etc.
648
- </td>
649
- <td>Recursion + Iteration</td>
650
- </tr>
651
325
  <tr>
652
326
  <td>Binary Tree Morris</td>
653
327
  <td>Morris traversal is an in-order traversal algorithm for binary trees with O(1) space complexity. It allows tree
@@ -655,65 +329,6 @@ lastBFSNodes[0].id // 12
655
329
  </td>
656
330
  <td>Iteration</td>
657
331
  </tr>
658
- <tr>
659
- <td>Graph BFS</td>
660
- <td>Traverse a graph in a breadth-first manner, starting from a given node, first visiting nodes directly connected
661
- to the starting node, and then expanding level by level. Used for finding shortest paths, etc.
662
- </td>
663
- <td>Recursion + Iteration</td>
664
- </tr>
665
- <tr>
666
- <td>Graph Tarjan's Algorithm</td>
667
- <td>Find strongly connected components in a graph, typically implemented using depth-first search.</td>
668
- <td>Recursion</td>
669
- </tr>
670
- <tr>
671
- <td>Graph Bellman-Ford Algorithm</td>
672
- <td>Finding the shortest paths from a single source, can handle negative weight edges</td>
673
- <td>Iteration</td>
674
- </tr>
675
- <tr>
676
- <td>Graph Dijkstra's Algorithm</td>
677
- <td>Finding the shortest paths from a single source, cannot handle negative weight edges</td>
678
- <td>Iteration</td>
679
- </tr>
680
- <tr>
681
- <td>Graph Floyd-Warshall Algorithm</td>
682
- <td>Finding the shortest paths between all pairs of nodes</td>
683
- <td>Iteration</td>
684
- </tr>
685
- <tr>
686
- <td>Graph getCycles</td>
687
- <td>Find all cycles in a graph or detect the presence of cycles.</td>
688
- <td>Recursion</td>
689
- </tr>
690
- <tr>
691
- <td>Graph getCutVertexes</td>
692
- <td>Find cut vertices in a graph, which are nodes that, when removed, increase the number of connected components in
693
- the graph.
694
- </td>
695
- <td>Recursion</td>
696
- </tr>
697
- <tr>
698
- <td>Graph getSCCs</td>
699
- <td>Find strongly connected components in a graph, which are subgraphs where any two nodes can reach each other.
700
- </td>
701
- <td>Recursion</td>
702
- </tr>
703
- <tr>
704
- <td>Graph getBridges</td>
705
- <td>Find bridges in a graph, which are edges that, when removed, increase the number of connected components in the
706
- graph.
707
- </td>
708
- <td>Recursion</td>
709
- </tr>
710
- <tr>
711
- <td>Graph topologicalSort</td>
712
- <td>Perform topological sorting on a directed acyclic graph (DAG) to find a linear order of nodes such that all
713
- directed edges go from earlier nodes to later nodes.
714
- </td>
715
- <td>Recursion</td>
716
- </tr>
717
332
  </tbody>
718
333
  </table>
719
334
 
@@ -266,9 +266,9 @@ class BinaryTree extends base_1.IterableEntryBase {
266
266
  * @returns a boolean value.
267
267
  */
268
268
  isRealNode(node) {
269
- if (!this.isNode(node))
269
+ if (node === this.NIL || node === null || node === undefined)
270
270
  return false;
271
- return node !== this.NIL;
271
+ return this.isNode(node);
272
272
  }
273
273
  /**
274
274
  * The function checks if a given node is a BinaryTreeNode instance and has a key value of NaN.
@@ -608,7 +608,7 @@ class BST extends binary_tree_1.BinaryTree {
608
608
  if (!current)
609
609
  return undefined;
610
610
  if (this._variant === 'STANDARD') {
611
- // For BSTVariant.MIN, find the rightmost node
611
+ // For 'STANDARD', find the rightmost node
612
612
  while (current.right !== undefined) {
613
613
  current = current.right;
614
614
  }
@@ -4,9 +4,9 @@ export * from './stack';
4
4
  export * from './queue';
5
5
  export * from './graph';
6
6
  export * from './binary-tree';
7
- export * from './tree';
8
7
  export * from './heap';
9
8
  export * from './priority-queue';
10
9
  export * from './matrix';
11
10
  export * from './trie';
12
11
  export * from './base';
12
+ export * from './tree';
@@ -20,9 +20,9 @@ __exportStar(require("./stack"), exports);
20
20
  __exportStar(require("./queue"), exports);
21
21
  __exportStar(require("./graph"), exports);
22
22
  __exportStar(require("./binary-tree"), exports);
23
- __exportStar(require("./tree"), exports);
24
23
  __exportStar(require("./heap"), exports);
25
24
  __exportStar(require("./priority-queue"), exports);
26
25
  __exportStar(require("./matrix"), exports);
27
26
  __exportStar(require("./trie"), exports);
28
27
  __exportStar(require("./base"), exports);
28
+ __exportStar(require("./tree"), exports);
@@ -1 +1,2 @@
1
1
  export * from './utils';
2
+ export * from './number';
@@ -15,3 +15,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./utils"), exports);
18
+ __exportStar(require("./number"), exports);
@@ -0,0 +1 @@
1
+ export declare function toBinaryString(num: number, digit?: number): string;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toBinaryString = void 0;
4
+ function toBinaryString(num, digit = 32) {
5
+ // Convert number to binary string
6
+ let binaryString = (num >>> 0).toString(2); // Use the unsigned right shift operator to ensure you get a binary representation of a 32-bit unsigned integer
7
+ // Use pad Start to ensure the string length is 32 bits
8
+ binaryString = binaryString.padStart(digit, '0');
9
+ return binaryString;
10
+ }
11
+ exports.toBinaryString = toBinaryString;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "avl-tree-typed",
3
- "version": "1.51.2",
3
+ "version": "1.51.4",
4
4
  "description": "AVLTree(Adelson-Velsky and Landis Tree). Javascript & Typescript Data Structure.",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -163,6 +163,6 @@
163
163
  "typescript": "^4.9.5"
164
164
  },
165
165
  "dependencies": {
166
- "data-structure-typed": "^1.51.2"
166
+ "data-structure-typed": "^1.51.4"
167
167
  }
168
168
  }
@@ -316,8 +316,8 @@ export class BinaryTree<
316
316
  * @returns a boolean value.
317
317
  */
318
318
  isRealNode(node: KeyOrNodeOrEntry<K, V, NODE>): node is NODE {
319
- if (!this.isNode(node)) return false;
320
- return node !== this.NIL;
319
+ if (node === this.NIL || node === null || node === undefined) return false;
320
+ return this.isNode(node);
321
321
  }
322
322
 
323
323
  /**
@@ -695,7 +695,7 @@ export class BST<
695
695
  if (!current) return undefined;
696
696
 
697
697
  if (this._variant === 'STANDARD') {
698
- // For BSTVariant.MIN, find the rightmost node
698
+ // For 'STANDARD', find the rightmost node
699
699
  while (current.right !== undefined) {
700
700
  current = current.right;
701
701
  }
@@ -4,9 +4,9 @@ export * from './stack';
4
4
  export * from './queue';
5
5
  export * from './graph';
6
6
  export * from './binary-tree';
7
- export * from './tree';
8
7
  export * from './heap';
9
8
  export * from './priority-queue';
10
9
  export * from './matrix';
11
10
  export * from './trie';
12
11
  export * from './base';
12
+ export * from './tree';
@@ -1 +1,2 @@
1
1
  export * from './utils';
2
+ export * from './number';
@@ -0,0 +1,9 @@
1
+ export function toBinaryString(num: number, digit = 32) {
2
+ // Convert number to binary string
3
+ let binaryString = (num >>> 0).toString(2); // Use the unsigned right shift operator to ensure you get a binary representation of a 32-bit unsigned integer
4
+
5
+ // Use pad Start to ensure the string length is 32 bits
6
+ binaryString = binaryString.padStart(digit, '0');
7
+
8
+ return binaryString;
9
+ }