DSA Syllabus

Data Structures and Algorithms (DSA) Syllabus

This syllabus covers fundamental and advanced concepts in Data Structures and Algorithms (DSA), commonly used in coding interviews, competitive programming, and software development.


1. Introduction to DSA

  • Importance of Data Structures and Algorithms

  • Time Complexity and Space Complexity (Big-O Notation)

  • Asymptotic Analysis


2. Basic Data Structures

2.1 Arrays and Strings

  • Introduction to Arrays

  • Array Operations (Insertion, Deletion, Searching)

  • Multi-dimensional Arrays

  • String Manipulation and Pattern Matching

  • Sliding Window and Two-Pointer Technique

2.2 Linked List

  • Singly Linked List (Insertion, Deletion, Traversal)

  • Doubly Linked List

  • Circular Linked List

  • Detecting and Removing Loops in Linked Lists

2.3 Stack

  • Stack Implementation (Array and Linked List)

  • Applications: Valid Parentheses, Postfix Expression Evaluation

  • Stack using STL/Collections

2.4 Queue and Deque

  • Queue Implementation (Array and Linked List)

  • Circular Queue

  • Priority Queue

  • Double-Ended Queue (Deque)


3. Recursion and Backtracking

  • Basics of Recursion (Factorial, Fibonacci)

  • Backtracking (N-Queens Problem, Rat in a Maze, Sudoku Solver)


4. Searching and Sorting Algorithms

4.1 Searching Algorithms

  • Linear Search

  • Binary Search (Iterative and Recursive)

  • Ternary Search

  • Applications of Binary Search (Search in Rotated Sorted Array, Median of Two Sorted Arrays)

4.2 Sorting Algorithms

  • Bubble Sort, Selection Sort, Insertion Sort

  • Merge Sort, Quick Sort, Heap Sort

  • Counting Sort, Radix Sort, Bucket Sort


5. Hashing and Hash Tables

  • Hash Functions and Hash Tables

  • Collision Handling (Chaining, Open Addressing)

  • Applications of Hashing (Two Sum Problem, Anagram Check)


6. Trees and Graphs

6.1 Trees

  • Binary Trees (Traversal: Inorder, Preorder, Postorder)

  • Binary Search Tree (BST) and its Operations

  • AVL Trees, Red-Black Trees

  • Trie (Prefix Tree) and its Applications

6.2 Graphs

  • Graph Representations (Adjacency Matrix, Adjacency List)

  • Graph Traversal (DFS, BFS)

  • Shortest Path Algorithms (Dijkstra’s, Floyd-Warshall, Bellman-Ford)

  • Minimum Spanning Tree (Prim’s, Kruskal’s)

  • Topological Sorting


7. Dynamic Programming (DP) and Greedy Algorithms

7.1 Dynamic Programming

  • Principles of Dynamic Programming

  • Memoization vs. Tabulation

  • Classical DP Problems (Knapsack Problem, Fibonacci, Longest Common Subsequence, Coin Change)

7.2 Greedy Algorithms

  • Greedy Algorithm Approach

  • Activity Selection Problem

  • Huffman Coding

  • Fractional Knapsack


8. Advanced Topics

  • Bit Manipulation

  • Segment Trees and Fenwick Tree (Binary Indexed Tree)

  • Disjoint Set Union (DSU) and Kruskal’s Algorithm

  • KMP Algorithm for Pattern Matching


9. Competitive Programming Practice

  • Solving Problems on Platforms like LeetCode, CodeForces, and HackerRank

  • Time and Space Optimization Techniques

  • Participating in Online Coding Contests

Scroll to Top