03 September 2025

#DSA

#DSA
Topic Sub-Topics (comma separated) Basic Intermediate Advanced Expert
Arrays Basics, Traversal, Searching, Sorting, Two-Pointer, Sliding Window
Strings Basics, String Matching, Substrings, Palindrome, Anagram, Pattern Matching
Linked List Singly Linked List, Doubly Linked List, Circular Linked List, Reversal, Detect Cycle
Stacks Stack Operations, Infix/Postfix/Prefix, Balanced Parentheses, Min/Max Stack
Queues Simple Queue, Circular Queue, Deque, Priority Queue, Double-Ended Queue
Recursion Basics, Backtracking, Divide and Conquer, Tail Recursion
Trees Binary Tree, Traversals, Binary Search Tree, Height, Diameter, Lowest Common Ancestor
Heaps Min Heap, Max Heap, Heapify, Heap Sort, Priority Queue
Hashing Hash Table, Hash Map, Collision Handling, Open Addressing, Chaining
Graphs Graph Representation, BFS, DFS, Topological Sort, Dijkstra, Bellman-Ford, Floyd-Warshall, MST
Dynamic Programming Memoization, Tabulation, Fibonacci Variants, Knapsack, LIS, Matrix Chain Multiplication
Greedy Algorithms Activity Selection, Huffman Coding, Minimum Spanning Tree, Job Scheduling
Searching Linear Search, Binary Search, Ternary Search, Search in Rotated Array
Sorting Bubble Sort, Selection Sort, Insertion Sort, Merge Sort, Quick Sort, Counting Sort, Radix Sort
Bit Manipulation Basics, Set/Unset/Toggle Bits, Subsets, XOR Problems, Bitmask DP
Mathematics GCD/LCM, Prime Numbers, Sieve of Eratosthenes, Modular Arithmetic, Combinatorics
Number Theory Modular Exponentiation, Euler?s Totient, Fermat?s Theorem, Chinese Remainder Theorem
Advanced Trees AVL Tree, Red-Black Tree, Segment Tree, Fenwick Tree, Trie
Advanced Graphs Max Flow, Min Cut, Bipartite Matching, Eulerian Path, Hamiltonian Cycle
Computational Geometry Convex Hull, Line Sweep, Closest Pair of Points, Rotating Calipers
String Algorithms KMP, Rabin-Karp, Z Algorithm, Suffix Array, Suffix Tree, LCP Array
Divide and Conquer Binary Search Variants, Matrix Multiplication, Convex Hull (DC Approach)
Backtracking N-Queens, Sudoku Solver, Rat in a Maze, Word Search
Advanced DP DP on Trees, DP on Graphs, Bitmask DP, Digit DP, Probability DP
Randomized Algorithms Randomized QuickSort, Reservoir Sampling, Monte Carlo Algorithms

Basic

Arrays & Strings

  1. What is an array?
  2. Difference between array and linked list.
  3. How to find the largest element in an array?
  4. How to reverse an array?
  5. How to rotate an array?
  6. What is a string in programming?
  7. How to check if a string is a palindrome?
  8. Find the frequency of characters in a string.
  9. How to remove duplicates from an array?
  10. Difference between mutable and immutable strings.

Searching & Sorting

  1. What is linear search?
  2. What is binary search?
  3. Difference between linear and binary search.
  4. What is bubble sort?
  5. What is selection sort?
  6. What is insertion sort?
  7. Time complexity of bubble sort.
  8. Time complexity of binary search.
  9. Best case of insertion sort.
  10. Difference between stable and unstable sorting algorithms.

Recursion & Basics

  1. What is recursion?
  2. Give an example of a recursive function.
  3. What is factorial using recursion?
  4. Difference between recursion and iteration.
  5. What is a base case in recursion?
  6. How to calculate Fibonacci series using recursion?
  7. What is tail recursion?
  8. Disadvantages of recursion.
  9. What is divide and conquer?
  10. Give examples of divide and conquer algorithms.

Stack & Queue Basics

  1. What is a stack?
  2. Applications of stack.
  3. What is a queue?
  4. Applications of queue.
  5. Difference between stack and queue.
  6. What is LIFO and FIFO?
  7. What is a circular queue?
  8. What is a deque?
  9. Difference between array and stack.
  10. How to implement a queue using two stacks?

Linked List Basics

  1. What is a linked list?
  2. Difference between singly and doubly linked list.
  3. What are the advantages of linked lists over arrays?
  4. How to traverse a linked list?
  5. What is a circular linked list?
  6. Applications of linked lists.
  7. How to insert a node at the beginning of a linked list?
  8. How to delete a node in a linked list?
  9. What is the time complexity of search in a linked list?
  10. What are sentinel nodes?

Intermediate

Arrays & Hashing

  1. Find the second largest element in an array.
  2. How to find missing number in an array?
  3. Find duplicate elements in an array.
  4. Find intersection of two arrays.
  5. What is hashing?
  6. Difference between hash table and hash map.
  7. How to handle hash collisions?
  8. What is open addressing?
  9. What is separate chaining?
  10. Applications of hashing.

Sorting & Searching

  1. Explain merge sort.
  2. Explain quick sort.
  3. Difference between merge sort and quick sort.
  4. What is heap sort?
  5. What is counting sort?
  6. What is radix sort?
  7. What is bucket sort?
  8. Time complexity of merge sort.
  9. Space complexity of merge sort.
  10. Best case of quick sort.

Stack & Queue

  1. Implement stack using array.
  2. Implement queue using linked list.
  3. What is priority queue?
  4. How to implement a min-heap?
  5. What is double-ended queue (deque)?
  6. Difference between stack overflow and underflow.
  7. Applications of queue in real life.
  8. Expression evaluation using stack.
  9. Convert infix to postfix expression.
  10. Evaluate postfix expression.

Linked List

  1. How to reverse a linked list?
  2. Detect cycle in a linked list.
  3. Find middle element of a linked list.
  4. Find nth node from end of linked list.
  5. Difference between array and linked list (in memory usage).
  6. Merge two sorted linked lists.
  7. Remove duplicates from a sorted linked list.
  8. Remove duplicates from an unsorted linked list.
  9. Delete a given node in a linked list.
  10. Flatten a multilevel linked list.

Trees Basics

  1. What is a binary tree?
  2. What is a binary search tree (BST)?
  3. What is tree traversal?
  4. Difference between inorder, preorder, postorder traversal.
  5. Applications of binary trees.
  6. Find height of a binary tree.
  7. Count number of nodes in a binary tree.
  8. Difference between full and complete binary tree.
  9. What is balanced binary tree?
  10. What is AVL tree?

Advanced

Trees & Graphs

  1. Implement inorder traversal of binary tree.
  2. Implement level-order traversal of binary tree.
  3. Find lowest common ancestor in binary tree.
  4. Serialize and deserialize a binary tree.
  5. Check if a binary tree is balanced.
  6. What is a red-black tree?
  7. What is a B-tree?
  8. What is a B+ tree?
  9. Difference between B-tree and B+ tree.
  10. Applications of AVL and Red-Black trees.

Graphs

  1. What is a graph?
  2. Difference between directed and undirected graph.
  3. What is adjacency list?
  4. What is adjacency matrix?
  5. Implement BFS in a graph.
  6. Implement DFS in a graph.
  7. Detect cycle in a graph.
  8. What is topological sorting?
  9. What is Dijkstra?s algorithm?
  10. What is Bellman-Ford algorithm?

Heaps & Priority Queues

  1. What is a heap?
  2. Difference between min heap and max heap.
  3. Insert an element in a heap.
  4. Delete an element from a heap.
  5. Heapify operation.
  6. Find kth largest element using heap.
  7. Applications of heaps.
  8. Difference between heap and stack memory.
  9. What is Fibonacci heap?
  10. What is Binomial heap?

Dynamic Programming

  1. What is dynamic programming?
  2. Difference between DP and recursion.
  3. What is memoization?
  4. What is tabulation?
  5. Fibonacci using DP.
  6. Longest common subsequence (LCS).
  7. Longest increasing subsequence (LIS).
  8. 0/1 Knapsack problem.
  9. Coin change problem.
  10. Minimum edit distance problem.

Advanced Algorithms

  1. KMP string matching algorithm.
  2. Rabin-Karp string matching algorithm.
  3. Z algorithm for pattern searching.
  4. Manacher?s algorithm.
  5. Trie data structure and uses.
  6. Suffix array and suffix tree.
  7. Segment tree.
  8. Fenwick tree (Binary Indexed Tree).
  9. Sparse table algorithm.
  10. Disjoint Set Union (Union-Find).

Expert

Advanced Graph Algorithms

  1. What is Floyd-Warshall algorithm?
  2. What is Kruskal?s algorithm?
  3. What is Prim?s algorithm?
  4. Difference between Kruskal and Prim.
  5. What is Minimum Spanning Tree (MST)?
  6. Tarjan?s algorithm for strongly connected components.
  7. Kosaraju?s algorithm.
  8. Johnson?s algorithm.
  9. Edmonds-Karp algorithm.
  10. Ford-Fulkerson algorithm.

Advanced Dynamic Programming

  1. Matrix chain multiplication problem.
  2. Word break problem.
  3. Palindrome partitioning.
  4. Longest palindromic subsequence.
  5. Egg dropping puzzle.
  6. Subset sum problem.
  7. Partition equal subset sum.
  8. Rod cutting problem.
  9. Minimum jumps to reach end.
  10. Optimal binary search tree.

Geometry & Math Algorithms

  1. Convex hull (Graham?s scan).
  2. Convex hull (Jarvis march).
  3. Line sweep algorithms.
  4. Closest pair of points problem.
  5. Bentley-Ottmann algorithm.
  6. Euclidean GCD algorithm.
  7. Extended Euclidean algorithm.
  8. Sieve of Eratosthenes.
  9. Miller-Rabin primality test.
  10. Fast exponentiation (modular).

Advanced Data Structures

  1. Treap data structure.
  2. Skip list.
  3. Rope data structure.
  4. Persistent segment tree.
  5. Persistent data structures.
  6. Van Emde Boas tree.
  7. Splay tree.
  8. Cartesian tree.
  9. Bloom filter.
  10. LRU cache implementation.

Problem Solving & System Level

  1. How to detect deadlocks in graphs?
  2. Explain graph coloring problem.
  3. Explain traveling salesman problem.
  4. Explain NP-complete problems.
  5. Explain NP-hard problems.
  6. Difference between P and NP.
  7. Applications of max flow algorithms.
  8. Applications of DP in real life.
  9. Difference between brute force and optimized solutions.
  10. Future trends in data structures & algorithms.