← Programming & Computer Science Foundations
DSA with C++
Data structures and algorithms in C++ — from arrays and linked lists to AVL trees
Learn DSA the C++ way — starting with recursion, array representations, and string handling, then moving into matrices, sparse matrix representations, and linked lists. The course covers stacks, queues, trees, BST, AVL trees, search trees, heaps, sorting, hashing, and graphs, with asymptotic notation tying the analysis together.
per level · 3 levels · complete programme ₹17,000
- Duration
- 5 mo
Fees by level
Start at any level, or take the complete programme. The fee you pay for a level is locked for you.
| Level | What it covers | Duration | Fee |
|---|---|---|---|
| Beginner | Start from zero | 1 mo | ₹4,000 |
| Intermediate | Build working projects | 2 mo | ₹5,500 |
| Advanced | Get job-ready | 2 mo | ₹7,500 |
| Complete programme (all levels) | ₹17,000 | ||
All fees are in Indian Rupees and include applicable taxes. See our pricing & payment terms.
The complete curriculum
This is the entire syllabus — all 20 modules and 225 lessons, in the order you'll learn them. Nothing hidden.
↓ Download full curriculum (PDF)01 Introduction 7 lessons ▶
- 1.1Introduction to the Course
- 1.2Setting Up the environment
- 1.3Static Memory Allocation
- 1.4Dynamic memory allocation
- 1.5Physical and logical data structures
- 1.6ADT
- 1.7Space and time complexity
02 Recursion 18 lessons ▶
- 2.1How recursion works, Generalization, Recursion and stack
- 2.2Recurrence relation and time complexity
- 2.3Code recursion
- 2.4Static and global variables in recursion and code
- 2.5Tail recursion
- 2.6Head recursion
- 2.7Tree recursion
- 2.8Indirect recursion
- 2.9Nested recursion
- 2.10Sum of natural numbers using recursion
- 2.11Factorial using recursion
- 2.12Power using recursion
- 2.13Taylor series using recursion approach-1
- 2.14Taylor series using recursion approach-2
- 2.15Fibonacci series using recursion
- 2.16nCr using recursion
- 2.17Tower of hanoi
- 2.18Tower of Hanoi implementation
03 Array Representations 10 lessons ▶
- 3.1Introduction, Declaration, Demo
- 3.2Static array vs dynamic array, CODE
- 3.3Increase array size, CODE
- 3.42D array
- 3.52D array DEMO
- 3.6Array representation by compiler
- 3.7Row major formula for 2d arrays
- 3.8Column major formula for 2d arrays
- 3.9Formulas for nD arrays
- 3.10Formulas for 3D arrays
04 Array ADT 27 lessons ▶
- 4.1Array ADT
- 4.2Array ADT - Demo
- 4.3Inserting in array
- 4.4Inserting in array - DEMO
- 4.5Deleting from array
- 4.6Deleting from array - DEMO
- 4.7Linear search
- 4.8Linear search - DEMO
- 4.9Binary search
- 4.10Binary search - DEMO
- 4.11Get, set, avg, max functions
- 4.12Get, set, avg, max functions DEMO
- 4.13Merging array
- 4.14Mergin array demo
- 4.15Check if an array is sorted
- 4.16Check if an array is sorted - DEMO
- 4.17Set operations on arrays
- 4.18Single missing element in sorted array
- 4.19Multiple missing element in sorted array
- 4.20Finding duplicates in sorted array
- 4.21Finding duplicates in unsorted array
- 4.22Reverse an array
- 4.23Reverse array DEMO
- 4.24Find duplicates in sorted array usign hashing
- 4.25Find a pair of elements with sum as K in unsorted array
- 4.26Find a pair of elements with sum as K in sorted array
- 4.27Find max and min in one scan
05 Strings 10 lessons ▶
- 5.1String introduction
- 5.2Length of string
- 5.3Changing case of a string
- 5.4Counting words and vowels
- 5.5Validating a string
- 5.6Reversing a string
- 5.7Comparing two strings and palindrome
- 5.8Finding duplicates
- 5.9Check if two strings are anagrams
- 5.10Permutations of a given string
06 Matrices 11 lessons ▶
- 6.1Diagonal matrix
- 6.2Diagonal matrix DEMO
- 6.3Class for diagonal matrix
- 6.4Class for diagonal matrix - DEMO
- 6.5Lower triangular matrix
- 6.6Lower triangular matrix code
- 6.7Upper triangular matrix
- 6.8Symmetric matrix
- 6.9Tri digonal and tri band matrix
- 6.10Toeplitz marix
- 6.11C++ class for matrix
07 Sparse matrix and polynomial representation 6 lessons ▶
- 7.1Sparse matrix representation
- 7.2Sparse matrix addition
- 7.3Creation of Sparse matrix
- 7.4Addition of sparse matrix
- 7.5Sparse matrix using
- 7.6Polynomials
08 Linked list 41 lessons ▶
- 8.1Why need dynamic DS LL
- 8.2Linked list introduction
- 8.3Display linked list
- 8.4Display linked list code
- 8.5Counting nodes and sum of all elements of linked list
- 8.6Counting nodes and sum - DEMO
- 8.7Max element in linked list
- 8.8Max element in linked list - DEMO
- 8.9Searching in linked list
- 8.10Searching in linked list - DEMO
- 8.11Insertion
- 8.12Insertion - DEMO
- 8.13Insertion in sorted list
- 8.14Insertion in sorted list - DEMO
- 8.15Check if list is sorted
- 8.16Check if list is sorted - DEMO
- 8.17Deletion
- 8.18Deletion - DEMO
- 8.19Reverse a linked list
- 8.20Concatinating two linked lists
- 8.21Checking for a LOOP
- 8.22Checking for LOOP - DEMO
- 8.23CLL Introduction
- 8.24CLL Introduction - DEMO
- 8.25Insertion in CLL
- 8.26Deletion in CLL
- 8.27CLL insertion and deletion - DEMO
- 8.28Doubly linked list - Introduction
- 8.29Insert in DLL
- 8.30Delete in DLL
- 8.31DLL - DEMO
- 8.32Circular doubly linked list
- 8.33Comparision of linked lsits
- 8.34Max element in LL
- 8.35Creating a LL using insert
- 8.36Creating a LL by inserting at last
- 8.37Removing duplicates from sorted LL
- 8.38Removing duplicates from sorted LL DEMO
- 8.39Recursive reverse for LL
- 8.40Reversign a LL DEMO
- 8.41Reverse a doubly LL DEMO
09 Sparse matrix polynomial expression using linked list 2 lessons ▶
- 9.1Polynomial representation using LL
- 9.2Polynomial representation using LL DEMO
10 Stack 10 lessons ▶
- 10.1Stack introduction
- 10.2Stack using array - DEMO
- 10.3Stack using linked list
- 10.4Parenthesis matching
- 10.5Parenthesis matching - DEMO
- 10.6Infix to postfix conversion
- 10.7Infix to postfix - DEMO
- 10.8Evaluation of postfix expression
- 10.9Postfix evaluation - DEMO
- 10.10Stack using LL - DEMO
11 Queue 10 lessons ▶
- 11.1Queue introduction
- 11.2Queue insertion and deletion - DEMO
- 11.3Drawback of queue using array
- 11.4Circular queue
- 11.5Circular queue - DEMO
- 11.6Queue using linked list
- 11.7Queue using LL - DEMO
- 11.8Priority queue
- 11.9Double ended queue DEQUE
- 11.10Double ended queue DEQUE - DEMO
12 Trees 17 lessons ▶
- 12.1Tree - terminology
- 12.2Height vs nodes formulas
- 12.3Internal and external nodes
- 12.4Strict binary tree
- 12.5n-ary trees
- 12.6Representation of binary tree
- 12.7Full vs complete binary tree
- 12.8Strict vs complete binary tree
- 12.9Creating a tree
- 12.10Creating Binary tree DEMO
- 12.11Binary tree traversals
- 12.12Iterative traversals DEMO
- 12.13Level order traversal DEMO
- 12.14Generate binary tree from traversals
- 12.15Generate BT from traversals DEMO
- 12.16Height and count of BT DEMO
- 12.17Count leaf nodes in BT DEMO
13 Binary search tree 7 lessons ▶
- 13.1Searching in BST
- 13.2Inserting in BST
- 13.3Creating a BST
- 13.4BST DEMO
- 13.5Deleting from BST
- 13.6BST drawbacks
- 13.7Generate BST from preorder
14 AVL trees 6 lessons ▶
- 14.1AVL tree introduction
- 14.2Insertion in AVL with rotations
- 14.3General form of AVR rotations
- 14.4Generating AVL tree
- 14.5Height analysis AVL trees
- 14.6AVL rotations DEMO
15 Search trees 6 lessons ▶
- 15.12,3 trees
- 15.22,3,4 trees
- 15.3Red black trees
- 15.4Red black tree creation
- 15.5Red black trees vs 2-3-4 trees
- 15.6Red black tree deletion
16 Heap 8 lessons ▶
- 16.1Heap introduction
- 16.2Heap insertion
- 16.3Heap insertion - DEMO
- 16.4Heap creation
- 16.5Heap element deletion
- 16.6Heap sort - DEMO
- 16.7Heapify
- 16.8Heap as priority queue
17 Sorting techniques 10 lessons ▶
- 17.1Bubble sort
- 17.2Bubble sort DEMO
- 17.3Insertion sort
- 17.4Insertion sort DEMO
- 17.5Selection sort
- 17.6Selection sort DEMO
- 17.7Quick sort
- 17.8Quick sort DEMO
- 17.9Merge sort
- 17.10Merge sort DEMO
18 Hashing techniques 6 lessons ▶
- 18.1Hashing introduction
- 18.2Chaining
- 18.3Chaining - DEMO
- 18.4Linear probing - Quadratic probing
- 18.5Linear probing - DEMO
- 18.6Hash function ideas
19 Graphs 12 lessons ▶
- 19.1Graphs terminology
- 19.2Representation of undirected graph
- 19.3Representation of directed graph
- 19.4Breadth first search
- 19.5BFS DEMO
- 19.6Depth first search
- 19.7DFS - Demo
- 19.8Minimum cost spanning tree
- 19.9Prims algorithm
- 19.10Prims algorithm DEMO
- 19.11Kruskal_s algorithm
- 19.12Kruskal algorithm DEMO
20 Asymptotic notation 1 lesson ▶
- 20.1Asymptotic notations
Tools you'll use
Every course includes
Related courses
C++
Master C++ fundamentals — OOP, STL, and file streams — with hands-on practice
Competitive Programming
Sharpen your competitive programming edge with STL, graphs, and dynamic programming
DBMS
Database fundamentals through Oracle SQL, PL/SQL, and transaction management