Content🔗
Data Structures🔗
Array🔗
Linked List🔗
Stack & Queues🔗
- Stack Operations & Applications
- Queue & Deque Implementations
- Expression Evaluation & Parsing
- Monotonic Stacks & Sliding Window Maximum
Heaps & Priority Queues🔗
Disjoint Set Union (DSU)🔗
Hashing🔗
Sorting🔗
- Elementary Sorting Strategies
- Quicksort
- Mergesort
- Priority Queues & Heapsort
- Counting Sort, Radix Sort & Bucket Sort
- Special Sorting Techniques
Search🔗
- Binary Search
- Search in Rotated/Sorted Array
- Binary Search Trees (BSTs) Operations
- Hashing Based Search Methods
- Radix Search & Trie-based Search
Problem Solving Paradigm🔗
- Complete Search (Brute Force)
- Divide & Conquer
- Greedy Algorithms & Strategies
- Dynamic Programming Patterns
- Memoization & State Compression
Trees🔗
Optional Topics in Trees
- Advanced Trees: AVL, Red-Black Trees, Tries
Graph🔗
- Graph Properties and their Types
- Graph Traversal (DFS/BFS)
- Digraphs & DAGs (Topological Sorting)
- Shortest Paths (Dijkstra, Bellman-Ford, Floyd-Warshall)
- Minimum Spanning Trees (Kruskal, Prim)
- Network Flow Algorithm (Ford-Fulkerson, Edmond-Karp) (Optional)
- Other Algorithms (SCC, Bridges, Articulation Points)
- Summary
Strings🔗
- Basic String Processing
- String Matching (KMP, Rabin-Karp, Z-Algorithm)
- Trie Data Structures & Application
- Suffix Tree & Suffix Arrays (Optional)
- String Processing with DP
- String Tasks
- Compression & Encoding Techniques
Additional Topics🔗
- Mathematics & Number Theory
- Prime Numbers, GCD, LCM
- Modular Arithmetic & Exponentiation
- Combinatorics & Probability
- Bit Manipulation
- Bitwise Operators & Tricks
- Subset Generation & Bitmask DP
- Computational Geometry
- Points, Lines, Polygons
- Convex Hull & Line Intersection
- Miscellaneous Algorithms & Patterns
- Simulation & Randomized Algorithms
- Meet-in-the-Middle Technique
- Sparse Tables & Range Queries