DSA🔗
Data Structures🔗
-
Linked List
-
Stack & Queues
-
Heaps & Priority Queues
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 (Optional)
Recursion🔗
Problem Solving Paradigm🔗
- Complete Search (Brute Force)
- Divide & Conquer
- Greedy Algorithms & Strategies
- Dynamic Programming Patterns
- Advanced DP Problems
Trees🔗
Optional Topics in Trees
- Suffix Trees
- Fenwick Trees (Binary Indexed Trees)
- Segment Trees & Lazy Propagation
- Sqrt Decomposition Techniques
- Heap
- Advanced Trees: AVL, Red-Black Trees
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)
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
- Binary Manipulation