# data-structure-typed Javascript Data Structure, TypeScript Data Structure Library ## install ### yarn ```bash yarn add data-structure-typed ``` ### npm ```bash npm install data-structure-typed ``` ## Online examples [Online Examples](https://data-structure-typed-examples.vercel.app) ## Examples Repository [Example Repository](https://github.com/zrwusa/data-structure-typed-examples) ## api docs [//]: # ([api docs](https://data-structure-typed-docs.vercel.app/)) ## 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 [//]: # ( ) [//]: # ( ) [//]: # ( ) [//]: # ( ) [//]: # ( ) [//]: # ( )
Data Structure Derived Basic Features Additional Features
Binary Tree AVL Tree, Binary Search Tree, Tree Multiset put, has, get, remove, size, insertTo, insertMany, fill, getDepth, getHeight, getMinHeight, getPathToRoot, isBalanced getLeftMost, isBST, getSubTreeSizeAndCount, subTreeSum, subTreeAdd, BFS, DFS, DFSIterative, levelIterative, listLevels, getPredecessor, morris,
AVL Tree All the features inherited from Binary Tree, balanceFactor, updateHeight, balancePath, balanceLL, balanceLR, balanceRR, balanceRL
Binary Search Tree (BST) All the features inherited from Binary Tree, lastKey All the features inherited from Binary Tree, lesserSum, allGreaterNodesAdd, balance, isAVLBalanced
Tree Multiset All the features inherited from Binary Tree All the features inherited from Binary Tree
Segment Tree build, updateNode, querySumByRange
Binary Indexed Tree update, getPrefixSum, getRangeSum, BinaryIndexedTree.lowBit
Graph Directed Graph, Undirected Graph getVertex, getVertexId, containsVertex, vertexSet, addVertex, removeVertex, removeAllVertices, containsEdge, setEdgeWeight, getAllPathsBetween, getPathSumWeight, getMinCostBetween, getMinPathBetween, dijkstra, dijkstraWithoutHeap, bellmanFord, floyd, tarjan
Directed Graph All the features inherited from Graph, getEdge, addEdge, removeEdgeBetween, removeEdge, removeAllEdges, incomingEdgesOf, outgoingEdgesOf, degreeOf, inDegreeOf, outDegreeOf, edgesOf, getEdgeSrc, getEdgeDest, getDestinations, edgeSet, getNeighbors, getEndsOfEdge All the features inherited from Graph, topologicalSort
Undirected Graph All the features inherited from Graph, getEdge, addEdge, removeEdgeBetween, removeEdge, degreeOf, edgesOf, edgeSet, getEdgesOf, getNeighbors, getEndsOfEdge All the features inherited from Graph
Singly Linked List length, head, tail, size, get, getNode, findNodeIndex, findNode, find, findIndex, append, push, prepend, insertAt, removeNode, removeAt, insertBefore, sort, insertAfter, shift, pop, merge, clear, slice, reverse, forEach, map, filter, reduce, toArray, toString
Hash CoordinateSet, CoordinateMap
CoordinateSet has, set, get, delete
CoordinateMap has, add, delete
Heap
Doubly Linked List size, offerFirst, offerLast, peekFirst, peekLast, pollFirst, pollLast, get, isEmpty, insert, remove,
Matrix
Priority Queue Max Priority Queue, Min Priority Queue offer, peek, poll, leaf, isEmpty, clear, toArray, clone isValid, sort, DFS
Max Priority Queue All the features inherited from Priority Queue All the features inherited from Priority Queue
Min Priority Queue All the features inherited from Priority Queue All the features inherited from Priority Queue
Queue Queue, Dequeue offer, poll, peek, peekLast, size, isEmpty, toArray, clear, clone, Queue.fromArray
ObjectDeque size, offerFirst, offerLast, pollFirst, peekFirst, pollLast, peekLast, get, isEmpty
ArrayDeque offerLast, pollLast, pollFirst, offerFirst, peekFirst, peekLast, get, set, insert, remove, isEmpty
Stack isEmpty, size, peek, push, pop, toArray, clear, clone, Stack.fromArray
Trie put, has, remove, isAbsPrefix, isPrefix, getAll
![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))