Javascript Data Structure, TypeScript Data Structure Library ## install ### yarn ```bash yarn add data-structure-typed ``` ### npm ```bash npm install data-structure-typed ``` ## Live Examples [//]: # ([Live Examples](https://data-structure-typed-examples.vercel.app)) Live Examples ## Data Structures Meticulously crafted to empower developers with a versatile set of essential data structures. Our library includes a wide range of data structures: Binary Tree, Binary Search Tree (BST), AVL Tree, Tree Multiset, Segment Tree, Binary Indexed Tree, Graph, Directed Graph, Undirected Graph, Linked List, Singly Linked List, Doubly Linked List, Queue, Object Deque, Array Deque, Stack, Hash, Coordinate Set, Coordinate Map, Heap, Priority Queue, Max Priority Queue, Min Priority Queue, Trie ## API docs [//]: # ([api docs](https://data-structure-typed-docs.vercel.app/)) [//]: # ([Examples Repository](https://github.com/zrwusa/data-structure-typed-examples)) Examples Repository ## Complexities ### performance of Big O
Big O Notation Type Computations for 10 elements Computations for 100 elements Computations for 1000 elements
O(1) Constant 1 1 1
O(log N) Logarithmic 3 6 9
O(N) Linear 10 100 1000
O(N log N) n log(n) 30 600 9000
O(N^2) Quadratic 100 10000 1000000
O(2^N) Exponential 1024 1.26e+29 1.07e+301
O(N!) Factorial 3628800 9.3e+157 4.02e+2567
### Data Structure Complexity
Data Structure Access Search Insertion Deletion Comments
Array 1 n n n
Stack n n 1 1
Queue n n 1 1
Linked List n n 1 n
Hash Table - n n n In case of perfect hash function costs would be O(1)
Binary Search Tree n n n n In case of balanced tree costs would be O(log(n))
B-Tree log(n) log(n) log(n) log(n)
Red-Black Tree log(n) log(n) log(n) log(n)
AVL Tree log(n) log(n) log(n) log(n)
Bloom Filter - 1 1 - False positives are possible while searching
### Sorting Complexity
Name Best Average Worst Memory Stable Comments
Bubble sort n n2 n2 1 Yes
Insertion sort n n2 n2 1 Yes
Selection sort n2 n2 n2 1 No
Heap sort n log(n) n log(n) n log(n) 1 No
Merge sort n log(n) n log(n) n log(n) n Yes
Quick sort n log(n) n log(n) n2 log(n) No Quicksort is usually done in-place with O(log(n)) stack space
Shell sort n log(n) depends on gap sequence n (log(n))2 1 No
Counting sort n + r n + r n + r n + r Yes r - biggest number in array
Radix sort n * k n * k n * k n + k Yes k - length of longest key
![complexities](src/assets/complexities-diff.jpg) ![complexities of data structures](src/assets/data-structure-complexities.jpg) ![](src/data-structures/binary-tree/diagrams/bst-rotation.gif) ![](src/data-structures/binary-tree/diagrams/avl-tree-inserting.gif) ![](src/data-structures/graph/diagrams/tarjan.webp) ![](src/data-structures/graph/diagrams/adjacency-list.jpg) ![](src/data-structures/graph/diagrams/adjacency-list-pros-cons.jpg) ![](src/data-structures/graph/diagrams/adjacency-matrix.jpg) ![](src/data-structures/graph/diagrams/adjacency-matrix-pros-cons.jpg) ![](src/data-structures/graph/diagrams/dfs-can-do.jpg) ![](src/data-structures/graph/diagrams/edge-list.jpg) ![](src/data-structures/graph/diagrams/edge-list-pros-cons.jpg) ![](src/data-structures/graph/diagrams/max-flow.jpg) ![](src/data-structures/graph/diagrams/mst.jpg) [//]: # (![](src/data-structures/graph/diagrams/tarjan-articulation-point-bridge.png)) [//]: # (![](src/data-structures/graph/diagrams/tarjan-complicate-simple.png)) [//]: # (![](src/data-structures/graph/diagrams/tarjan-strongly-connected-component.png))