What you'll learn

This course provides a solid foundation in Data Structures and Algorithms (DSA) using C++. It covers fundamental concepts such as arrays, linked lists, stacks, queues, trees, graphs, sorting, and searching algorithms. Through hands-on coding exercises and problem-solving techniques, students will develop a strong understanding of how data is stored, manipulated, and optimized in real-world applications. By the end of this course, learners will be able to analyze algorithm efficiency and implement data structures efficiently in C++. Outcomes: 1. Understand the Fundamentals of DSA. 2. Implement Basic Data Structures in C++ 3. Apply Trees and Graphs Concepts 4. Master Searching and Sorting Algorithms 5. Analyze Algorithm Complexity 6. Solve Real-World Problems Using DSA

  • Using Data Types, Operators, Control Statements, and Loops Creating and Using Structures, Pointers Functions and Classes Input Output in C++
  • Asymptotic Notations, and Complexity analysis Fundamentals of Data Structures Using Array and performing Searching, Traversing
  • Traversing, Insertion and Deletion operations in Array Sorting Algorithms and Merging in Array Problem Solving Questions of Array
  • Basics of Linked List and it's types Operations on Linked List (Insertion, Deletion, Searching and Traversing) Implementing Circular and 2-way Linked List Standard Coding Problems on Linked List
  • Importance of Data Structures and Algorithms Understanding Time Complexity (Big O, Omega, Theta Notation) Space Complexity & Optimizing Code Recursion and Backtracking Basics
  • One-Dimensional & Multi-Dimensional Arrays Operations: Insertion, Deletion, Searching, Sorting Sliding Window & Two-Pointer Techniques Kadane’s Algorithm (Maximum Subarray Sum) String Manipulation & Pattern Matching (KMP, Rabin-Karp) Anagram Problems & Palindromes
  • Singly, Doubly, Circular Linked Lists Operations: Insertion, Deletion, Reversal Detecting Cycles (Floyd’s Cycle Detection) Merge Two Sorted Linked Lists Intersection of Two Linked Lists Flattening a Linked List
  • Stack Implementation (Array & Linked List) Applications: Balanced Parentheses, Next Greater Element, Infix to Postfix Conversion Queue Implementation (Array & Linked List) Circular Queue, Priority Queue, Deque Monotonic Stack & Queue Problems
  • Binary Trees, Binary Search Trees (BST), AVL Trees, Trie Tree Traversals (Inorder, Preorder, Postorder, Level Order) Lowest Common Ancestor (LCA) Diameter of a Tree
  • Basics of Stack and Queue Operations on Stack and Queue Applications of Queue and Stack Standard Coding Problems on Stack and Queue
  • Introduction to Binary Tree and Tree Traversal using Recursion Fundamentals of Binary Search Tree, AVL Tree, and Heap Heap Sort Algorithms
  • Fundamentals of Graphs, Graph Traversal (BFS and DFS) Introduction to Hashing Techniques and Collision Resolution Techniques
  • Graph Representations (Adjacency Matrix/List) Depth-First Search (DFS), Breadth-First Search (BFS) Shortest Path Algorithms (Dijkstra’s, Bellman-Ford, Floyd-Warshall) Topological Sorting (Kahn’s Algorithm, DFS Approach) Minimum Spanning Tree (Prim’s, Kruskal’s Algorithm) Cycle Detection in Graphs (Directed & Undirected) Strongly Connected Components (Kosaraju’s Algorithm)

Puneet Kumar
Assistant Professor

Mr. Puneet is currently working as Assistant Professor in the School of Computer Science & Engineering at Lovely Professional University. He has done Master’s in Computer Science and Engineering and has 11+ years experience as a Data Structure and Algorithms tutor in various colleges. He have conducted lots of workshops and skill development courses on programming languages, data structures and algorithms.


Dr. Nishant Agnihotri
Associate Professor

Dr. Nishant is currently working as Assistant Professor in the School of Computer Science & Engineering at Lovely Professional University. He has done P.hD in Computer Science and Engineering and has 9+ years of experience as a Data Structure and Algorithms tutor in various colleges. He have conducted lots of workshops and skill development courses on programming languages, data structures and algorithms.