Data Structures & Algorithms (DSA) in C – Complete Roadmap (Beginner to Advanced)
This roadmap is designed for students who are new to programming and want to master Data Structures and Algorithms (DSA) using the C programming language. It starts from C basics and gradually moves toward advanced algorithms commonly asked in coding interviews and competitive programming.
Phase 1: C Programming Fundamentals
Module 1: Introduction to C
Topics
- What is Programming?
- What is C?
- History of C
- Features of C
- Applications of C
- Installing GCC Compiler
- Writing First C Program
- Compilation Process
- Comments
Practice
- Hello World Program
- Calculator
- Student Information
Module 2: Variables and Data Types
Topics
- Variables
- Constants
- Keywords
- Identifiers
- Data Types
- int
- float
- double
- char
- Boolean
- Type Conversion
- sizeof Operator
- Input (scanf)
- Output (printf)
Practice
- Temperature Converter
- Area Calculator
- Interest Calculator
Module 3: Operators
Topics
- Arithmetic Operators
- Relational Operators
- Logical Operators
- Assignment Operators
- Increment/Decrement
- Bitwise Operators
- Ternary Operator
- Operator Precedence
Practice
- Calculator
- Even/Odd Checker
- Largest Number
Module 4: Control Statements
Topics
- if
- if-else
- Nested if
- Switch
- while
- do-while
- for
- break
- continue
- goto (Basics)
Practice
- Number Guessing
- Multiplication Table
- Pattern Printing
Module 5: Functions
Topics
- Function Declaration
- Function Definition
- Function Call
- Parameters
- Return Values
- Recursion
- Scope
- Storage Classes
- Inline Functions (Concept)
Practice
- Factorial
- Fibonacci
- Prime Number
Module 6: Arrays and Strings
Topics
Arrays
- 1D Array
- 2D Array
- Multidimensional Arrays
- Array Traversal
Strings
- Character Arrays
- gets() vs fgets()
- puts()
- strlen()
- strcpy()
- strcat()
- strcmp()
Practice
- Matrix Addition
- Matrix Multiplication
- String Reverse
- Palindrome
Module 7: Pointers
Topics
- Memory Address
- Pointer Declaration
- Pointer Arithmetic
- Pointer to Pointer
- Pointer and Arrays
- Pointer and Functions
- Dynamic Memory
- malloc()
- calloc()
- realloc()
- free()
Practice
- Dynamic Array
- Swap using Pointer
- Pointer Calculator
Module 8: Structures and Unions
Topics
- Structures
- Nested Structures
- Array of Structures
- Pointer to Structure
- Union
- typedef
- enum
Practice
- Student Database
- Employee Record
- Library Management
Module 9: File Handling
Topics
- fopen()
- fclose()
- fread()
- fwrite()
- fprintf()
- fscanf()
- Binary Files
- Text Files
Practice
- Notes Application
- Student Record System
Phase 2: Programming Logic
Module 10: Problem Solving Basics
Topics
- Flowcharts
- Algorithms
- Time Complexity
- Space Complexity
- Big O Notation
- Dry Run
Practice
- Number Problems
- Pattern Problems
- Mathematical Problems
Module 11: Recursion
Topics
- Recursive Functions
- Base Case
- Recursive Tree
- Tail Recursion
- Backtracking Basics
Practice
- Tower of Hanoi
- Fibonacci
- Binary Search
- Maze Solver
Phase 3: Data Structures
Module 12: Arrays
Topics
- Traversal
- Insertion
- Deletion
- Searching
- Updating
- Rotation
- Prefix Sum
- Sliding Window
Algorithms
- Linear Search
- Binary Search
- Kadane Algorithm
Practice
- Largest Element
- Second Largest
- Missing Number
- Rotate Array
Module 13: Strings
Topics
- Character Arrays
- String Manipulation
- Frequency Count
- Hashing Basics
Algorithms
- KMP
- Rabin-Karp
- Z Algorithm
Practice
- Reverse String
- Palindrome
- Anagram
- Longest Common Prefix
Module 14: Linked List
Topics
- Singly Linked List
- Doubly Linked List
- Circular Linked List
Operations
- Insert
- Delete
- Reverse
- Search
- Sort
Practice
- Reverse Linked List
- Detect Loop
- Merge Lists
- Middle Node
Module 15: Stack
Topics
- Stack using Array
- Stack using Linked List
Applications
- Parentheses Matching
- Expression Evaluation
- Infix
- Prefix
- Postfix
Practice
- Browser History
- Undo Feature
Module 16: Queue
Topics
- Queue
- Circular Queue
- Priority Queue
- Deque
Practice
- Printer Queue
- CPU Scheduling
Module 17: Hashing
Topics
- Hash Table
- Collision Handling
- Chaining
- Open Addressing
Practice
- Frequency Counter
- Duplicate Detection
Module 18: Trees
Topics
- Binary Tree
- Binary Search Tree
- AVL Tree
- Heap
- Trie
Traversals
- Preorder
- Inorder
- Postorder
- Level Order
Practice
- Tree Height
- Diameter
- Lowest Common Ancestor
Module 19: Heap
Topics
- Max Heap
- Min Heap
- Heapify
- Priority Queue
Algorithms
- Heap Sort
Practice
- K Largest Elements
- Merge K Arrays
Module 20: Graph
Topics
- Graph Representation
- Adjacency Matrix
- Adjacency List
Traversal
- BFS
- DFS
Algorithms
- Topological Sort
- Dijkstra
- Bellman-Ford
- Floyd-Warshall
- Prim
- Kruskal
- Union Find
Practice
- Connected Components
- Shortest Path
- Cycle Detection
Phase 4: Algorithms
Module 21: Searching
Topics
- Linear Search
- Binary Search
- Binary Search on Answer
Practice
- Search Insert Position
- Peak Element
Module 22: Sorting
Topics
- Bubble Sort
- Selection Sort
- Insertion Sort
- Merge Sort
- Quick Sort
- Heap Sort
- Counting Sort
- Radix Sort
Practice
- Sort Students
- Custom Sorting
Module 23: Greedy Algorithms
Topics
- Activity Selection
- Fractional Knapsack
- Job Scheduling
- Huffman Coding
Practice
- Coin Change
- Minimum Platforms
Module 24: Divide and Conquer
Topics
- Merge Sort
- Quick Sort
- Binary Search
- Closest Pair
Practice
- Inversion Count
Module 25: Dynamic Programming
Topics
- Memoization
- Tabulation
- State Transition
Problems
- Fibonacci
- Knapsack
- Coin Change
- LCS
- LIS
- Matrix Chain Multiplication
- Edit Distance
Module 26: Backtracking
Topics
- Decision Tree
- State Space Tree
Problems
- N Queens
- Sudoku Solver
- Rat in Maze
- Permutations
- Subsets
Module 27: Bit Manipulation
Topics
- XOR
- AND
- OR
- NOT
- Left Shift
- Right Shift
Practice
- Single Number
- Power of Two
- Count Set Bits
- Bit Masking
Phase 5: Advanced DSA
Module 28: Advanced Trees
Topics
- Segment Tree
- Fenwick Tree (Binary Indexed Tree)
- Sparse Table
Practice
- Range Sum Query
- Range Minimum Query
Module 29: Advanced Graphs
Topics
- Disjoint Set Union (DSU)
- Tarjan Algorithm
- Kosaraju Algorithm
- Strongly Connected Components
- Bridges
- Articulation Points
Module 30: Advanced Dynamic Programming
Topics
- DP on Trees
- DP on Strings
- Digit DP
- Bitmask DP
Module 31: Advanced Algorithms
Topics
- Meet in the Middle
- Mo's Algorithm
- Sliding Window
- Two Pointers
- Prefix Sum
- Difference Array
- Monotonic Stack
- Monotonic Queue
Phase 6: Interview Preparation
Module 32: Problem Solving Patterns
Topics
- Two Pointers
- Sliding Window
- Fast & Slow Pointer
- Binary Search Pattern
- DFS Pattern
- BFS Pattern
- Tree Pattern
- Graph Pattern
- Dynamic Programming Pattern
Module 33: Coding Interview Preparation
Topics
- Time Complexity Analysis
- Space Optimization
- Code Optimization
- Dry Run
- Debugging
- Edge Cases
Practice
- 300+ Easy Problems
- 250+ Medium Problems
- 100+ Hard Problems
Phase 7: Projects
Beginner Projects
- Student Management System
- Banking System
- Library Management System
- Contact Book
- Calculator
- Tic-Tac-Toe
Intermediate Projects
- Employee Management System
- Inventory Management
- File Compression (Huffman Coding)
- Text Editor using Linked List
- Music Playlist using Linked List
Advanced Projects
- Mini Compiler (Basics)
- File System Simulation
- Search Engine using Trie
- Social Network Graph
- Route Planner using Dijkstra
- Memory Allocator Simulation
Recommended Learning Order
- C Programming Basics
- Functions and Pointers
- Arrays and Strings
- Time & Space Complexity
- Recursion
- Linked Lists
- Stack and Queue
- Hashing
- Trees and BST
- Heap
- Graphs
- Searching and Sorting
- Greedy Algorithms
- Divide and Conquer
- Dynamic Programming
- Backtracking
- Bit Manipulation
- Advanced Trees and Graphs
- Advanced DP and Algorithms
- Solve 700–1000 DSA Problems and build projects.
This roadmap takes you from complete beginner in C to advanced DSA, covering the concepts commonly required for software engineering interviews, competitive programming, and computer science fundamentals.