structalgo
v2.0.0
Published
A library for creating and manipulating data structures
Readme
StructAlgo
Repo that aspires to contain multiple data structures and algorithms for typescript. Feel free to add on to it, open PRs, and use it in your projects.
Documentation available here
NPMJS package info available here
Implementation Progress
Data Structures
- [x] Hash Set
- [x] Linked List
- [x] Ring Buffer
- [x] Stack
- [x] Tree Set
- [x] Graph
- [x] LRU Cache
- [x] Queue
- [x] AVL Tree
- [x] Heap
- [x] Trie
- [x] Binary Search Tree
- [x] Priority Queue
- [x] Deque (Double-ended Queue)
- [x] Bloom Filter
- [x] Disjoint Set (Union-Find)
Algorithms
- [x] Quick Sort
- [x] Bubble Sort
- [x] Bucket Sort
- [x] Counting Sort
- [x] Insertion Sort
- [x] Merge Sort
- [x] Radix Sort
- [x] Selection Sort
- [x] Heap Sort
- [x] Binary Search
- [x] Breadth-First Search (BFS)
- [x] Depth-First Search (DFS)
- [x] Dijkstra's Algorithm
- [x] A* Algorithm
- [x] Kruskal's Algorithm
- [x] Prim's Algorithm
Future Work & Enhancements
The following features and improvements are planned for future releases:
Additional Data Structures
- Red-Black Tree
- B-Tree and B+ Tree
- Suffix Tree and Suffix Array
- Segment Tree
- Fenwick Tree (Binary Indexed Tree)
- Skip List
- Fibonacci Heap
- Van Emde Boas Tree
Additional Algorithms
- Topological Sort
- Bellman-Ford Algorithm
- Floyd-Warshall Algorithm
- Tarjan's Algorithm (Strongly Connected Components)
- Kosaraju's Algorithm
- Ford-Fulkerson Algorithm (Max Flow)
- Knuth-Morris-Pratt (KMP) String Matching
- Rabin-Karp String Matching
- Boyer-Moore String Matching
- Convex Hull (Graham Scan, Jarvis March)
- Dynamic Programming classics (Knapsack, Longest Common Subsequence, etc.)
Improvements
- Performance benchmarks for all implementations
- More comprehensive test coverage
- Interactive visualizations for algorithms
- Better documentation with more examples
- Support for custom comparators in more data structures
- Iterator implementations for all data structures
- Immutable versions of data structures
