Data Structures & Algorithms
A library of Data Structures and Algorithms written using C++17
Data Structures
- Array
- BiMap
- BinarySearchTree
- ClosedMap
- DoublyLinkedList
- FenwickTree
- Heap
- IndexedPriorityQueue
- PriorityQueue
- PriorityQueue_LL
- SparseTable
- Stack
- Stack_LL
- UnionFind
- UnorderedMap
- UnorderedSet
- Vector
Graph Representation
Graph Algorithms
- BellmanFord
- BreadthFirstSearch
- ConnectedComponents
- DepthFirstOrder
- DepthFirstSearch
- DirectedCycle
- EagerDijkstra
- EagerPrim
- FloydWarshall
- Kahn
- Kosaraju
- Kruskal
- LazyDijkstra
- LazyPrim
- Tarjan
- Topological_SP
- TopologicalSort
- UndirectedBipartite
- UndirectedCycle
Flow Network Representation
Flow Network Algorithms
Searching Algorithms
Sorting Algorithms
- BubbleSort
- BucketSort
- CountingSort
- HeapSort
- InsertionSort
- MergeSort
- QuickSort_Lomuto
- QuickSort_Hoare
- RadixSort
- SelectionSort
- TreeSort
Unit Tests
Unit testing is performed using the Catch2 framework.
References
- Algorithms, 4th Edition - Robert Sedgewick and Kevin Wayne
- Introduction to Algorithms - Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein
License
MIT License
Copyright (c) 2020 Nicholas Gan