priority-queue-typed
Advanced tools
Comparing version 1.47.3 to 1.47.4
{ | ||
"name": "priority-queue-typed", | ||
"version": "1.47.3", | ||
"version": "1.47.4", | ||
"description": "Priority Queue, Min Priority Queue, Max Priority Queue. Javascript & Typescript Data Structure.", | ||
@@ -123,4 +123,4 @@ "main": "dist/index.js", | ||
"dependencies": { | ||
"data-structure-typed": "^1.47.3" | ||
"data-structure-typed": "^1.47.4" | ||
} | ||
} |
764
README.md
@@ -112,2 +112,3 @@ ![NPM](https://img.shields.io/npm/l/priority-queue-typed) | ||
## API docs & Examples | ||
@@ -117,5 +118,5 @@ | ||
[Live Examples](https://data-structure-typed-examples.vercel.app) | ||
[Live Examples](https://vivid-algorithm.vercel.app) | ||
<a href="https://github.com/zrwusa/data-structure-typed-examples" target="_blank">Examples Repository</a> | ||
<a href="https://github.com/zrwusa/vivid-algorithm" target="_blank">Examples Repository</a> | ||
@@ -130,4 +131,3 @@ ## Data Structures | ||
<th>Performance Test</th> | ||
<th>API Documentation</th> | ||
<th>Implemented</th> | ||
<th>API Docs</th> | ||
</tr> | ||
@@ -138,8 +138,5 @@ </thead> | ||
<td>Binary Tree</td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""/> | ||
</td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""/> | ||
</td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/BinaryTree.html"><span>Binary Tree</span></a></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
</tr> | ||
@@ -151,3 +148,2 @@ <tr> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/BST.html"><span>BST</span></a></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
</tr> | ||
@@ -159,3 +155,8 @@ <tr> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/AVLTree.html"><span>AVLTree</span></a></td> | ||
</tr> | ||
<tr> | ||
<td>Red Black Tree</td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/RedBlackTree.html"><span>RedBlackTree</span></a></td> | ||
</tr> | ||
@@ -167,10 +168,8 @@ <tr> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/TreeMultimap.html"><span>TreeMultimap</span></a></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
</tr> | ||
<tr> | ||
<td>Segment Tree</td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td></td> | ||
<td></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/SegmentTree.html"><span>SegmentTree</span></a></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
</tr> | ||
@@ -182,415 +181,472 @@ <tr> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/BinaryIndexedTree.html"><span>BinaryIndexedTree</span></a></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
</tr> | ||
<tr> | ||
<td>Graph</td> | ||
<td>Heap</td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/AbstractGraph.html"><span>AbstractGraph</span></a></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/Heap.html"><span>Heap</span></a></td> | ||
</tr> | ||
<tr> | ||
<td>Directed Graph</td> | ||
<td>Priority Queue</td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/DirectedGraph.html"><span>DirectedGraph</span></a></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/PriorityQueue.html"><span>PriorityQueue</span></a></td> | ||
</tr> | ||
<tr> | ||
<td>Undirected Graph</td> | ||
<td>Max Priority Queue</td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/UndirectedGraph.html"><span>UndirectedGraph</span></a></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/MaxPriorityQueue.html"><span>MaxPriorityQueue</span></a></td> | ||
</tr> | ||
<tr> | ||
<td>Linked List</td> | ||
<td>Min Priority Queue</td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/SinglyLinkedList.html"><span>SinglyLinkedList</span></a></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/MinPriorityQueue.html"><span>MinPriorityQueue</span></a></td> | ||
</tr> | ||
<tr> | ||
<td>Singly Linked List</td> | ||
<td>Trie</td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/SinglyLinkedList.html"><span>SinglyLinkedList</span></a></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/Trie.html"><span>Trie</span></a></td> | ||
</tr> | ||
<tr> | ||
<td>Doubly Linked List</td> | ||
<td>Graph</td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/DoublyLinkedList.html"><span>DoublyLinkedList</span></a></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/AbstractGraph.html"><span>AbstractGraph</span></a></td> | ||
</tr> | ||
<tr> | ||
<td>Queue</td> | ||
<td>Directed Graph</td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/Queue.html"><span>Queue</span></a></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/DirectedGraph.html"><span>DirectedGraph</span></a></td> | ||
</tr> | ||
<tr> | ||
<td>Object Deque</td> | ||
<td>Undirected Graph</td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/ObjectDeque.html"><span>ObjectDeque</span></a></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/UndirectedGraph.html"><span>UndirectedGraph</span></a></td> | ||
</tr> | ||
<tr> | ||
<td>Array Deque</td> | ||
<td>Queue</td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/ArrayDeque.html"><span>ArrayDeque</span></a></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/Queue.html"><span>Queue</span></a></td> | ||
</tr> | ||
<tr> | ||
<td>Stack</td> | ||
<td>Deque</td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/Stack.html"><span>Stack</span></a></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/Deque.html"><span>Deque</span></a></td> | ||
</tr> | ||
[//]: # (<tr>) | ||
[//]: # (<td>Hash</td>) | ||
[//]: # (<td></td>) | ||
[//]: # (<td></td>) | ||
[//]: # (<td><a href="https://data-structure-typed-docs.vercel.app/classes/HashTable.html"><span>HashTable</span></a></td>) | ||
[//]: # (<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>) | ||
[//]: # (</tr>) | ||
<tr> | ||
<td>Coordinate Set</td> | ||
<td></td> | ||
<td></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/CoordinateSet.html"><span>CoordinateSet</span></a></td> | ||
<td>Linked List</td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
</tr> | ||
<tr> | ||
<td>Coordinate Map</td> | ||
<td></td> | ||
<td></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/CoordinateMap.html"><span>CoordinateMap</span></a></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/SinglyLinkedList.html"><span>SinglyLinkedList</span></a></td> | ||
</tr> | ||
<tr> | ||
<td>Heap</td> | ||
<td>Singly Linked List</td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/Heap.html"><span>Heap</span></a></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/SinglyLinkedList.html"><span>SinglyLinkedList</span></a></td> | ||
</tr> | ||
<tr> | ||
<td>Priority Queue</td> | ||
<td>Doubly Linked List</td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/PriorityQueue.html"><span>PriorityQueue</span></a></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/DoublyLinkedList.html"><span>DoublyLinkedList</span></a></td> | ||
</tr> | ||
<tr> | ||
<td>Max Priority Queue</td> | ||
<td>Stack</td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/MaxPriorityQueue.html"><span>MaxPriorityQueue</span></a></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/Stack.html"><span>Stack</span></a></td> | ||
</tr> | ||
<tr> | ||
<td>Min Priority Queue</td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/MinPriorityQueue.html"><span>MinPriorityQueue</span></a></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
</tr> | ||
<tr> | ||
<td>Trie</td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
<td></td> | ||
<td><a href="https://data-structure-typed-docs.vercel.app/classes/Trie.html"><span>Trie</span></a></td> | ||
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td> | ||
</tr> | ||
</tbody> | ||
</table> | ||
# Why | ||
## Standard library data structure comparison | ||
## Complexities | ||
### performance of Big O | ||
<table> | ||
<thead> | ||
<tr> | ||
<th>Big O Notation</th> | ||
<th>Type</th> | ||
<th>Computations for 10 elements</th> | ||
<th>Computations for 100 elements</th> | ||
<th>Computations for 1000 elements</th> | ||
</tr> | ||
</thead> | ||
<tbody> | ||
<tr> | ||
<td><strong>O(1)</strong></td> | ||
<td>Constant</td> | ||
<td>1</td> | ||
<td>1</td> | ||
<td>1</td> | ||
</tr> | ||
<tr> | ||
<td><strong>O(log N)</strong></td> | ||
<td>Logarithmic</td> | ||
<td>3</td> | ||
<td>6</td> | ||
<td>9</td> | ||
</tr> | ||
<tr> | ||
<td><strong>O(N)</strong></td> | ||
<td>Linear</td> | ||
<td>10</td> | ||
<td>100</td> | ||
<td>1000</td> | ||
</tr> | ||
<tr> | ||
<td><strong>O(N log N)</strong></td> | ||
<td>n log(n)</td> | ||
<td>30</td> | ||
<td>600</td> | ||
<td>9000</td> | ||
</tr> | ||
<tr> | ||
<td><strong>O(N^2)</strong></td> | ||
<td>Quadratic</td> | ||
<td>100</td> | ||
<td>10000</td> | ||
<td>1000000</td> | ||
</tr> | ||
<tr> | ||
<td><strong>O(2^N)</strong></td> | ||
<td>Exponential</td> | ||
<td>1024</td> | ||
<td>1.26e+29</td> | ||
<td>1.07e+301</td> | ||
</tr> | ||
<tr> | ||
<td><strong>O(N!)</strong></td> | ||
<td>Factorial</td> | ||
<td>3628800</td> | ||
<td>9.3e+157</td> | ||
<td>4.02e+2567</td> | ||
</tr> | ||
</tbody> | ||
<thead> | ||
<tr> | ||
<th>Data Structure Typed</th> | ||
<th>C++ STL</th> | ||
<th>java.util</th> | ||
<th>Python collections</th> | ||
</tr> | ||
</thead> | ||
<tbody> | ||
<tr> | ||
<td>Heap<E></td> | ||
<td>priority_queue<T></td> | ||
<td>PriorityQueue<E></td> | ||
<td>heapq</td> | ||
</tr> | ||
<tr> | ||
<td>Deque<E></td> | ||
<td>deque<T></td> | ||
<td>ArrayDeque<E></td> | ||
<td>deque</td> | ||
</tr> | ||
<tr> | ||
<td>Queue<E></td> | ||
<td>queue<T></td> | ||
<td>Queue<E></td> | ||
<td>-</td> | ||
</tr> | ||
<tr> | ||
<td>HashMap<K, V></td> | ||
<td>unordered_map<K, V></td> | ||
<td>HashMap<K, V></td> | ||
<td>defaultdict</td> | ||
</tr> | ||
<tr> | ||
<td>DoublyLinkedList<E></td> | ||
<td>list<T></td> | ||
<td>LinkedList<E></td> | ||
<td>-</td> | ||
</tr> | ||
<tr> | ||
<td>SinglyLinkedList<E></td> | ||
<td>-</td> | ||
<td>-</td> | ||
<td>-</td> | ||
</tr> | ||
<tr> | ||
<td>BinaryTree<K, V></td> | ||
<td>-</td> | ||
<td>-</td> | ||
<td>-</td> | ||
</tr> | ||
<tr> | ||
<td>BST<K, V></td> | ||
<td>-</td> | ||
<td>-</td> | ||
<td>-</td> | ||
</tr> | ||
<tr> | ||
<td>RedBlackTree<E></td> | ||
<td>set<T></td> | ||
<td>TreeSet<E></td> | ||
<td>-</td> | ||
</tr> | ||
<tr> | ||
<td>RedBlackTree<K, V></td> | ||
<td>map<K, V></td> | ||
<td>TreeMap<K, V></td> | ||
<td>-</td> | ||
</tr> | ||
<tr> | ||
<td>TreeMultimap<K, V></td> | ||
<td>multimap<K, V></td> | ||
<td>-</td> | ||
<td>-</td> | ||
</tr> | ||
<tr> | ||
<td>-</td> | ||
<td>multiset<T></td> | ||
<td>-</td> | ||
<td>-</td> | ||
</tr> | ||
<tr> | ||
<td>Trie</td> | ||
<td>-</td> | ||
<td>-</td> | ||
<td>-</td> | ||
</tr> | ||
<tr> | ||
<td>DirectedGraph<V, E></td> | ||
<td>-</td> | ||
<td>-</td> | ||
<td>-</td> | ||
</tr> | ||
<tr> | ||
<td>UndirectedGraph<V, E></td> | ||
<td>-</td> | ||
<td>-</td> | ||
<td>-</td> | ||
</tr> | ||
<tr> | ||
<td>PriorityQueue<E></td> | ||
<td>priority_queue<T></td> | ||
<td>PriorityQueue<E></td> | ||
<td>-</td> | ||
</tr> | ||
<tr> | ||
<td>Array<E></td> | ||
<td>vector<T></td> | ||
<td>ArrayList<E></td> | ||
<td>list</td> | ||
</tr> | ||
<tr> | ||
<td>Stack<E></td> | ||
<td>stack<T></td> | ||
<td>Stack<E></td> | ||
<td>-</td> | ||
</tr> | ||
<tr> | ||
<td>Set<E></td> | ||
<td>-</td> | ||
<td>HashSet<E></td> | ||
<td>set</td> | ||
</tr> | ||
<tr> | ||
<td>Map<K, V></td> | ||
<td>-</td> | ||
<td>HashMap<K, V></td> | ||
<td>dict</td> | ||
</tr> | ||
<tr> | ||
<td>-</td> | ||
<td>unordered_set<T></td> | ||
<td>HashSet<E></td> | ||
<td>-</td> | ||
</tr> | ||
<tr> | ||
<td>Map<K, V></td> | ||
<td>-</td> | ||
<td>-</td> | ||
<td>OrderedDict</td> | ||
</tr> | ||
<tr> | ||
<td>-</td> | ||
<td>unordered_multiset</td> | ||
<td>-</td> | ||
<td>Counter</td> | ||
</tr> | ||
<tr> | ||
<td>-</td> | ||
<td>-</td> | ||
<td>LinkedHashSet<E></td> | ||
<td>-</td> | ||
</tr> | ||
<tr> | ||
<td>HashMap<K, V></td> | ||
<td>-</td> | ||
<td>LinkedHashMap<K, V></td> | ||
<td>-</td> | ||
</tr> | ||
<tr> | ||
<td>-</td> | ||
<td>unordered_multimap<K, V></td> | ||
<td>-</td> | ||
<td>-</td> | ||
</tr> | ||
<tr> | ||
<td>-</td> | ||
<td>bitset<N></td> | ||
<td>-</td> | ||
<td>-</td> | ||
</tr> | ||
</tbody> | ||
</table> | ||
### Data Structure Complexity | ||
## Benchmark | ||
[//]: # (No deletion!!! Start of Replace Section) | ||
<div class="json-to-html-collapse clearfix 0"> | ||
<div class='collapsible level0' ><span class='json-to-html-label'>avl-tree</span></div> | ||
<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> | ||
</div><div class="json-to-html-collapse clearfix 0"> | ||
<div class='collapsible level0' ><span class='json-to-html-label'>binary-tree</span></div> | ||
<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> | ||
</div><div class="json-to-html-collapse clearfix 0"> | ||
<div class='collapsible level0' ><span class='json-to-html-label'>bst</span></div> | ||
<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> | ||
</div><div class="json-to-html-collapse clearfix 0"> | ||
<div class='collapsible level0' ><span class='json-to-html-label'>rb-tree</span></div> | ||
<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> | ||
</div><div class="json-to-html-collapse clearfix 0"> | ||
<div class='collapsible level0' ><span class='json-to-html-label'>comparison</span></div> | ||
<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> | ||
</div><div class="json-to-html-collapse clearfix 0"> | ||
<div class='collapsible level0' ><span class='json-to-html-label'>directed-graph</span></div> | ||
<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> | ||
</div><div class="json-to-html-collapse clearfix 0"> | ||
<div class='collapsible level0' ><span class='json-to-html-label'>hash-map</span></div> | ||
<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> | ||
</div><div class="json-to-html-collapse clearfix 0"> | ||
<div class='collapsible level0' ><span class='json-to-html-label'>heap</span></div> | ||
<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> | ||
</div><div class="json-to-html-collapse clearfix 0"> | ||
<div class='collapsible level0' ><span class='json-to-html-label'>doubly-linked-list</span></div> | ||
<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> | ||
</div><div class="json-to-html-collapse clearfix 0"> | ||
<div class='collapsible level0' ><span class='json-to-html-label'>singly-linked-list</span></div> | ||
<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> | ||
</div><div class="json-to-html-collapse clearfix 0"> | ||
<div class='collapsible level0' ><span class='json-to-html-label'>max-priority-queue</span></div> | ||
<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> | ||
</div><div class="json-to-html-collapse clearfix 0"> | ||
<div class='collapsible level0' ><span class='json-to-html-label'>priority-queue</span></div> | ||
<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> | ||
</div><div class="json-to-html-collapse clearfix 0"> | ||
<div class='collapsible level0' ><span class='json-to-html-label'>deque</span></div> | ||
<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> | ||
</div><div class="json-to-html-collapse clearfix 0"> | ||
<div class='collapsible level0' ><span class='json-to-html-label'>queue</span></div> | ||
<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> | ||
</div><div class="json-to-html-collapse clearfix 0"> | ||
<div class='collapsible level0' ><span class='json-to-html-label'>stack</span></div> | ||
<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> | ||
</div><div class="json-to-html-collapse clearfix 0"> | ||
<div class='collapsible level0' ><span class='json-to-html-label'>trie</span></div> | ||
<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> | ||
</div> | ||
[//]: # (No deletion!!! End of Replace Section) | ||
## Built-in classic algorithms | ||
<table> | ||
<thead> | ||
<tr> | ||
<th>Data Structure</th> | ||
<th>Access</th> | ||
<th>Search</th> | ||
<th>Insertion</th> | ||
<th>Deletion</th> | ||
<th>Comments</th> | ||
</tr> | ||
</thead> | ||
<tbody> | ||
<tr> | ||
<td><strong>Array</strong></td> | ||
<td>1</td> | ||
<td>n</td> | ||
<td>n</td> | ||
<td>n</td> | ||
<td></td> | ||
</tr> | ||
<tr> | ||
<td><strong>Stack</strong></td> | ||
<td>n</td> | ||
<td>n</td> | ||
<td>1</td> | ||
<td>1</td> | ||
<td></td> | ||
</tr> | ||
<tr> | ||
<td><strong>Queue</strong></td> | ||
<td>n</td> | ||
<td>n</td> | ||
<td>1</td> | ||
<td>1</td> | ||
<td></td> | ||
</tr> | ||
<tr> | ||
<td><strong>Linked List</strong></td> | ||
<td>n</td> | ||
<td>n</td> | ||
<td>1</td> | ||
<td>n</td> | ||
<td></td> | ||
</tr> | ||
<tr> | ||
<td><strong>Hash Table</strong></td> | ||
<td>-</td> | ||
<td>n</td> | ||
<td>n</td> | ||
<td>n</td> | ||
<td>In case of perfect hash function costs would be O(1)</td> | ||
</tr> | ||
<tr> | ||
<td><strong>Binary Search Tree</strong></td> | ||
<td>n</td> | ||
<td>n</td> | ||
<td>n</td> | ||
<td>n</td> | ||
<td>In case of balanced tree costs would be O(log(n))</td> | ||
</tr> | ||
<tr> | ||
<td><strong>B-Tree</strong></td> | ||
<td>log(n)</td> | ||
<td>log(n)</td> | ||
<td>log(n)</td> | ||
<td>log(n)</td> | ||
<td></td> | ||
</tr> | ||
<tr> | ||
<td><strong>Red-Black Tree</strong></td> | ||
<td>log(n)</td> | ||
<td>log(n)</td> | ||
<td>log(n)</td> | ||
<td>log(n)</td> | ||
<td></td> | ||
</tr> | ||
<tr> | ||
<td><strong>AVL Tree</strong></td> | ||
<td>log(n)</td> | ||
<td>log(n)</td> | ||
<td>log(n)</td> | ||
<td>log(n)</td> | ||
<td></td> | ||
</tr> | ||
<tr> | ||
<td><strong>Bloom Filter</strong></td> | ||
<td>-</td> | ||
<td>1</td> | ||
<td>1</td> | ||
<td>-</td> | ||
<td>False positives are possible while searching</td> | ||
</tr> | ||
</tbody> | ||
<thead> | ||
<tr> | ||
<th>Algorithm</th> | ||
<th>Function Description</th> | ||
<th>Iteration Type</th> | ||
</tr> | ||
</thead> | ||
<tbody> | ||
<tr> | ||
<td>Binary Tree DFS</td> | ||
<td>Traverse a binary tree in a depth-first manner, starting from the root node, first visiting the left subtree, | ||
and then the right subtree, using recursion. | ||
</td> | ||
<td>Recursion + Iteration</td> | ||
</tr> | ||
<tr> | ||
<td>Binary Tree BFS</td> | ||
<td>Traverse a binary tree in a breadth-first manner, starting from the root node, visiting nodes level by level | ||
from left to right. | ||
</td> | ||
<td>Iteration</td> | ||
</tr> | ||
<tr> | ||
<td>Graph DFS</td> | ||
<td>Traverse a graph in a depth-first manner, starting from a given node, exploring along one path as deeply as | ||
possible, and backtracking to explore other paths. Used for finding connected components, paths, etc. | ||
</td> | ||
<td>Recursion + Iteration</td> | ||
</tr> | ||
<tr> | ||
<td>Binary Tree Morris</td> | ||
<td>Morris traversal is an in-order traversal algorithm for binary trees with O(1) space complexity. It allows tree | ||
traversal without additional stack or recursion. | ||
</td> | ||
<td>Iteration</td> | ||
</tr> | ||
<tr> | ||
<td>Graph BFS</td> | ||
<td>Traverse a graph in a breadth-first manner, starting from a given node, first visiting nodes directly connected | ||
to the starting node, and then expanding level by level. Used for finding shortest paths, etc. | ||
</td> | ||
<td>Recursion + Iteration</td> | ||
</tr> | ||
<tr> | ||
<td>Graph Tarjan's Algorithm</td> | ||
<td>Find strongly connected components in a graph, typically implemented using depth-first search.</td> | ||
<td>Recursion</td> | ||
</tr> | ||
<tr> | ||
<td>Graph Bellman-Ford Algorithm</td> | ||
<td>Finding the shortest paths from a single source, can handle negative weight edges</td> | ||
<td>Iteration</td> | ||
</tr> | ||
<tr> | ||
<td>Graph Dijkstra's Algorithm</td> | ||
<td>Finding the shortest paths from a single source, cannot handle negative weight edges</td> | ||
<td>Iteration</td> | ||
</tr> | ||
<tr> | ||
<td>Graph Floyd-Warshall Algorithm</td> | ||
<td>Finding the shortest paths between all pairs of nodes</td> | ||
<td>Iteration</td> | ||
</tr> | ||
<tr> | ||
<td>Graph getCycles</td> | ||
<td>Find all cycles in a graph or detect the presence of cycles.</td> | ||
<td>Recursion</td> | ||
</tr> | ||
<tr> | ||
<td>Graph getCutVertexes</td> | ||
<td>Find cut vertices in a graph, which are nodes that, when removed, increase the number of connected components in | ||
the graph. | ||
</td> | ||
<td>Recursion</td> | ||
</tr> | ||
<tr> | ||
<td>Graph getSCCs</td> | ||
<td>Find strongly connected components in a graph, which are subgraphs where any two nodes can reach each other. | ||
</td> | ||
<td>Recursion</td> | ||
</tr> | ||
<tr> | ||
<td>Graph getBridges</td> | ||
<td>Find bridges in a graph, which are edges that, when removed, increase the number of connected components in the | ||
graph. | ||
</td> | ||
<td>Recursion</td> | ||
</tr> | ||
<tr> | ||
<td>Graph topologicalSort</td> | ||
<td>Perform topological sorting on a directed acyclic graph (DAG) to find a linear order of nodes such that all | ||
directed edges go from earlier nodes to later nodes. | ||
</td> | ||
<td>Recursion</td> | ||
</tr> | ||
</tbody> | ||
</table> | ||
### Sorting Complexity | ||
## Software Engineering Design Standards | ||
<table> | ||
<thead> | ||
<tr> | ||
<th>Name</th> | ||
<th>Best</th> | ||
<th>Average</th> | ||
<th>Worst</th> | ||
<th>Memory</th> | ||
<th>Stable</th> | ||
<th>Comments</th> | ||
</tr> | ||
</thead> | ||
<tbody> | ||
<tr> | ||
<td><strong>Bubble sort</strong></td> | ||
<td>n</td> | ||
<td>n<sup>2</sup></td> | ||
<td>n<sup>2</sup></td> | ||
<td>1</td> | ||
<td>Yes</td> | ||
<td></td> | ||
</tr> | ||
<tr> | ||
<td><strong>Insertion sort</strong></td> | ||
<td>n</td> | ||
<td>n<sup>2</sup></td> | ||
<td>n<sup>2</sup></td> | ||
<td>1</td> | ||
<td>Yes</td> | ||
<td></td> | ||
</tr> | ||
<tr> | ||
<td><strong>Selection sort</strong></td> | ||
<td>n<sup>2</sup></td> | ||
<td>n<sup>2</sup></td> | ||
<td>n<sup>2</sup></td> | ||
<td>1</td> | ||
<td>No</td> | ||
<td></td> | ||
</tr> | ||
<tr> | ||
<td><strong>Heap sort</strong></td> | ||
<td>n log(n)</td> | ||
<td>n log(n)</td> | ||
<td>n log(n)</td> | ||
<td>1</td> | ||
<td>No</td> | ||
<td></td> | ||
</tr> | ||
<tr> | ||
<td><strong>Merge sort</strong></td> | ||
<td>n log(n)</td> | ||
<td>n log(n)</td> | ||
<td>n log(n)</td> | ||
<td>n</td> | ||
<td>Yes</td> | ||
<td></td> | ||
</tr> | ||
<tr> | ||
<td><strong>Quick sort</strong></td> | ||
<td>n log(n)</td> | ||
<td>n log(n)</td> | ||
<td>n<sup>2</sup></td> | ||
<td>log(n)</td> | ||
<td>No</td> | ||
<td>Quicksort is usually done in-place with O(log(n)) stack space</td> | ||
</tr> | ||
<tr> | ||
<td><strong>Shell sort</strong></td> | ||
<td>n log(n)</td> | ||
<td>depends on gap sequence</td> | ||
<td>n (log(n))<sup>2</sup></td> | ||
<td>1</td> | ||
<td>No</td> | ||
<td></td> | ||
</tr> | ||
<tr> | ||
<td><strong>Counting sort</strong></td> | ||
<td>n + r</td> | ||
<td>n + r</td> | ||
<td>n + r</td> | ||
<td>n + r</td> | ||
<td>Yes</td> | ||
<td>r - biggest number in array</td> | ||
</tr> | ||
<tr> | ||
<td><strong>Radix sort</strong></td> | ||
<td>n * k</td> | ||
<td>n * k</td> | ||
<td>n * k</td> | ||
<td>n + k</td> | ||
<td>Yes</td> | ||
<td>k - length of longest key</td> | ||
</tr> | ||
</tbody> | ||
<tr> | ||
<th>Principle</th> | ||
<th>Description</th> | ||
</tr> | ||
<tr> | ||
<td>Practicality</td> | ||
<td>Follows ES6 and ESNext standards, offering unified and considerate optional parameters, and simplifies method names.</td> | ||
</tr> | ||
<tr> | ||
<td>Extensibility</td> | ||
<td>Adheres to OOP (Object-Oriented Programming) principles, allowing inheritance for all data structures.</td> | ||
</tr> | ||
<tr> | ||
<td>Modularization</td> | ||
<td>Includes data structure modularization and independent NPM packages.</td> | ||
</tr> | ||
<tr> | ||
<td>Efficiency</td> | ||
<td>All methods provide time and space complexity, comparable to native JS performance.</td> | ||
</tr> | ||
<tr> | ||
<td>Maintainability</td> | ||
<td>Follows open-source community development standards, complete documentation, continuous integration, and adheres to TDD (Test-Driven Development) patterns.</td> | ||
</tr> | ||
<tr> | ||
<td>Testability</td> | ||
<td>Automated and customized unit testing, performance testing, and integration testing.</td> | ||
</tr> | ||
<tr> | ||
<td>Portability</td> | ||
<td>Plans for porting to Java, Python, and C++, currently achieved to 80%.</td> | ||
</tr> | ||
<tr> | ||
<td>Reusability</td> | ||
<td>Fully decoupled, minimized side effects, and adheres to OOP.</td> | ||
</tr> | ||
<tr> | ||
<td>Security</td> | ||
<td>Carefully designed security for member variables and methods. Read-write separation. Data structure software does not need to consider other security aspects.</td> | ||
</tr> | ||
<tr> | ||
<td>Scalability</td> | ||
<td>Data structure software does not involve load issues.</td> | ||
</tr> | ||
</table> | ||
![overview diagram](https://github.com/zrwusa/assets/blob/master/images/data-structure-typed/assets/overview-diagram-of-data-structures.png) | ||
![complexities](https://github.com/zrwusa/assets/blob/master/images/data-structure-typed/assets/complexities-diff.jpg) | ||
![complexities of data structures](https://github.com/zrwusa/assets/blob/master/images/data-structure-typed/assets/data-structure-complexities.jpg) | ||
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1868516
645
Updateddata-structure-typed@^1.47.4