DSA with Algorithm
Module 1: Arrays
● Basics: traversing, insertion, deletion
● Searching (Linear Search, Binary Search)
● Sorting (Bubble, Selection, Insertion, Quick, Merge)
● Two-pointer technique
● Prefix Sum / Sliding Window
● Applications: subarray problems (max sum, k-size window, etc.)
Module 2: Strings
● Palindrome, anagram, subsequences
● String searching (KMP, Rabin-Karp basics)
● Pattern matching problems
● Applications: word frequency, rotations, substrings
Module 3: Linked Lists
● Singly, Doubly, Circular lists
● Reversal of linked list (iterative & recursive)
● Detecting and removing cycle (Floyd’s algorithm)
● Merge two sorted linked lists
● Middle element, nth node from end
Module 4: Stacks & Queues
● Implementation using arrays and linked lists
● Applications: Balanced parentheses, Next Greater Element, Evaluation of
postfix/prefix expressions
● Queue variations: Circular Queue, Deque, Priority Queue
● Special structures: Min/Max stack
Module 5: Recursion & Backtracking:
● Factorial, Fibonacci, Tower of Hanoi
● N-Queens, Rat in a Maze
● Generating subsets/permutations
● Sudoku solver
Module 6: Trees:
● Binary Tree basics (inorder, preorder, postorder traversal)
● Binary Search Tree (BST): insert, delete, search
● Lowest Common Ancestor (LCA)
● Height / Depth of tree
● Balanced trees (AVL basics)
● Applications: Heap (Priority Queue), Huffman coding
Module 7: Graphs:
● Representations: adjacency list & matrix
● Traversals: BFS, DFS
● Shortest Path: Dijkstra, Bellman-Ford
● Minimum Spanning Tree: Prim’s, Kruskal’s
● Topological Sorting
● Applications: cycle detection, connected components
Module 8: Hashing:
● Hash tables, collision handling (chaining, open addressing)
● Applications: frequency count, subarray problems, 2-sum problem
Module 9: Heaps:
● Min Heap, Max Heap
● Heapify, Heap Sort
● Applications: priority scheduling, median of stream