- Queues:
- Stacks:
- Unrolled Linked List (code, tests)
- Linked Lists:
- Self-organizing Lists:
- Hash Tables:
- Graphs:
- Binary Trees:
- Binary Search Tree (code, tests)
- Binary Indexed Tree (code, tests)
- Binary Heaps:
- AVL Tree (code, tests)
- Red-Black Tree (code, tests)
- Segment Trees:
- Tries:
- Suffix Arrays:
- Decision Trees:
- Disjoin Sets:
- State Machines:
- Caches:
- Buckets:
- Compression:
- Cryptography:
- Dynamic Programming:
- Digit DP (code, tests)
- 0/1 Knapsack (code, tests)
- Undounded Knapsack (code, tests)
- Fibonacci numbers Knapsack (code, tests)
- Change making (code, tests)
- Unique Change making (code, tests)
- Longest Common Subsequence (code, tests)
- Wine cellar (code, tests)
- Caps assignment (code, tests)
- Represent N as sum of 1,3,4 (code, tests)
- Graphs:
- Backtracking:
- Coloring:
- K-Centers:
- Longest Path:
- Maximum Flow and Bipartite matching:
- Dinic's algorithm (code, tests)
- Edge-Disjoint Path (code, tests)
- Ford-Fulkerson (code, tests)
- Ford-Fulkerson With Capacity Heuristic (code, tests)
- Hopcroft-Karp (code, tests)
- Maximum Bipartite Matching DFS-Based (code, tests)
- Maximum Bipartite Matching Ford-Fulkerson-Based (code, tests)
- Push-relabel (code, tests)
- Min Cut:
- Minimum Spanning Tree:
- Search:
- Shortest path:
- Traveling Salesman
- Vertex Cover:
- Voting:
- Misc:
- Biconnected Graph check using Tarjan's Algorithm (code, tests)
- Bipartite Graph check using DFS (code, tests)
- Bipartite Graph check using BFS (code, tests)
- Bridges in Graph check using Tarjan's Algorithm (code, tests)
- Cycles in Graph check using DFS (code, tests)
- Eulerian Path (code, tests)
- Fleury's algorithm (code, tests)
- Kosaraju's Algorithm (code, tests)
- Negative Cycle Detection using Bellman-Ford (code, tests)
- Tarjan's Algorithm (code, tests)
- Biconnected Components using Tarjan's algorithm (code, tests)
- Topological Sort (code, tests)
- Transitive Closure using Floyd-Warshall algorithm (code, tests)
- Hashing:
- Numbers:
- Pseudorandom Number Generators:
- Sampling:
- Search:
- Sorting:
- Bubble Sort (code, tests)
- Comb Sort (code, tests)
- Count Sort (code, tests)
- Heap Sort (code, tests)
- Insertion Sort (code, tests)
- Merge Sort (code, tests)
- Partitioned Merge Sort (code, tests)
- Quick Sort (code, tests)
- Quick Sort(Lomuto's partition) (code, tests)
- Radix Sort (code, tests)
- Selection Sort (code, tests)
- Shell Sort (code, tests)
- Strings:
- Levenstine Distance (code, tests)
- Booyer-Moore Combined Heuristic (code, tests)
- Booyer-Moore Bad Character Heuristic (code, tests)
- Booyer-Moore Good Suffix Heuristic (code, tests)
- Knuth-Morris-Pratt (code, tests)
- Naive pattern Search (code, tests)
- Recursive pattern Search (code, tests)
- Rabin-Karp (code, tests)
- Least Significant Digit sorting (code, tests)
- Most Significant Digit sorting (code, tests)
- Bitwise stuff: (code, tests