Data Structures Algorithms Essentials using C 2023

Master core computer science concepts by mastering data structures, algorithms & problem solving using C++
Data Structures Algorithms Essentials using C 2023
File Size :
8.13 GB
Total length :
27h 27m



Prateek Narang


Last update




Data Structures Algorithms Essentials using C 2023

What you’ll learn

Core concepts & internals of Data Structures
Trees, Linked Lists, Heaps, Graphs
Build all data structures from scratch
Object Oriented Programming Basics
Brute Force & Optimisation Techniques
Space Time Complexity Analysis
Hash Functions, Collision Handling
Recursion & Backtracking
Dynamic Memory & Pointers
Create your own DS library!
C++ Standard Template Library Basics
Project – Design & Implement Shopping Cart

Data Structures Algorithms Essentials using C 2023


Familiarity with any one programming language
Ability to understand & write code (preferably C/C++)
Understanding of Loops, Variables, Conditional Statements


Are you a beginner looking to enter the world of Data Structures or intermediate programmer wondering what happens behind a Hash-table? Welcome to Data Structures & Algorithms, Essentials Course – the only course you need to understand the core concepts behind Data Structures & build a solid programming foundations using C++ . The course is taught by an expert instructor Prateek Narang from Google, who is not just a software engineer but also has mentored thousands of students in becoming great programmers & developers and is top rated on Udemy for his amazing teaching skills.Every software application revolves around data, performing different operations like Insert, Delete, Update & Search. To be a great software developer, understanding of Data Structures & Algorithms is must and this course provides you a deep understanding of the topic by covering both the theory and hands-on-implementation of each data structure from scratch.The Course contains 20+ hours of interactive video content & dozens of coding exercises, teaching you all essential concepts starting from ground zero. Each section covers data structure in great detail, with Coding Exercises & real life examples. Here is what you will learn – Programming ConceptsBit maskingObject Oriented Programming Basics Pointers & Dynamic Memory (C++)RecursionData Structures FoundationArray, 2D Array, Strings, VectorsLinked Lists, Stacks, QueuesTrees, BST, TriesHeaps/Priority QueuesHash-tables, Collision HandlingGraphs Algorithms FoundationBrute Force, Backtracking Sorting & SearchingDivide & ConquerDynamic ProgrammingThe course is designed for beginner & intermediate programmers. We try to make not so easy topics look easy with intuitive explanations & interactive video lectures with dozens of memes 😉 The course finishes with a final mini project – a command line app for an online shopping cart combining principles from Object Oriented Programming & Data Structures.Unlike most instructors, we are not a salesperson or a marketer. My job is to help you build strong fundamentals in programming & be a successful developer. Through Udemy & Coding Minutes, I am providing this course to you at a fraction of cost of its original cost, so that anyone who is interested to learn can take their skills to the next level. So I hope you sign up today, and I will see you in the course.


Section 1: Introduction

Lecture 1 Course Orientation!

Lecture 2 Get maximum out of this course?

Section 2: Code Repository

Lecture 3 C++ Code Repository

Lecture 4 Java Code Repository

Lecture 5 Exercise Solutions

Section 3: Arrays

Lecture 6 Array Introduction

Lecture 7 Arrays – Input, Ouput, Update

Lecture 8 Arrays & Functions – Pass by Reference

Lecture 9 A Note about Space Time Complexity!

Lecture 10 Linear Search

Lecture 11 Binary Search

Lecture 12 Binary Search Code

Lecture 13 Array Reverse

Lecture 14 Printing Pairs

Lecture 15 Printing Subarrays

Lecture 16 Subarray Sum – I (Brute Force)

Lecture 17 Subarray Sum – II (Prefix Sums)

Lecture 18 Subarray Sum – III (Kadane’s Algorithm)

Lecture 19 A Note about Coding Exercises!

Lecture 20 Vectors Introduction

Lecture 21 Vectors (Demo)

Lecture 22 Solution – Largest Element

Lecture 23 Solution – Maximum Subarray Sum

Lecture 24 Solution – Lower Bound

Lecture 25 Solution – K Rotate

Section 4: Basic Sorting Algorithms

Lecture 26 Sorting Introduction

Lecture 27 Bubble Sort

Lecture 28 Bubble Sort Code

Lecture 29 Insertion Sort

Lecture 30 Insertion Sort Code

Lecture 31 Selection Sort

Lecture 32 Selection Sort Code

Lecture 33 Inbuilt Sort & Comparators

Lecture 34 Counting Sort

Lecture 35 Counting Sort Code

Section 5: Character Arrays/Strings

Lecture 36 Character Arrays Introduction

Lecture 37 Using cin.get()

Lecture 38 Digits & Spaces

Lecture 39 Using cin.getline()

Lecture 40 Shortest Path

Lecture 41 String Copy, Compare, Concat!

Lecture 42 Solution : Largest String

Lecture 43 Note : String Class

Lecture 44 String Class

Lecture 45 Run Length Encoding

Section 6: 2D Arrays

Lecture 46 Introduction to 2D Arrays

Lecture 47 2D Array Basics

Lecture 48 2D Character Arrays

Lecture 49 Spiral Print

Lecture 50 Sorted Array Search Code

Lecture 51 Mango Trees

Lecture 52 Sorted Array Search

Section 7: Pointers & Dynamic Memory

Lecture 53 Address of Operator

Lecture 54 Pointers

Lecture 55 Dereference Operator

Lecture 56 Reference Variables

Lecture 57 Pass by Reference – Reference Variable

Lecture 58 Pass by Reference – Pointers

Lecture 59 Dynamic Memory Allocation

Lecture 60 Using New & Delete

Lecture 61 2D Dynamic Array

Section 8: Vector Data Structure

Lecture 62 Vector

Lecture 63 Vectors – How they grow?

Lecture 64 Using Vector Container

Lecture 65 2D Vector using STL

Lecture 66 Vector Class – I

Lecture 67 Vector Class – II

Lecture 68 Vector Class – III

Lecture 69 Header Files & Template Classes

Lecture 70 Inbuilt Searching

Lecture 71 Sorting a Complex Vector!

Section 9: Bit Manipulation

Lecture 72 Bitwise Operators

Lecture 73 Left Shift & Right Shift

Lecture 74 Odd Even

Lecture 75 Get ith Bit

Lecture 76 Set ith Bit

Lecture 77 Clear ith Bit

Lecture 78 Update ith Bit

Lecture 79 Clear Last i Bits

Lecture 80 Clear Range of Bits

Lecture 81 Replace Bits

Lecture 82 Two Power

Lecture 83 Count Bits

Lecture 84 Count Bits – Hack

Lecture 85 Fast Exponentiation

Lecture 86 Make it Binary!

Section 10: Recursion Basics

Lecture 87 Recursion Introduction

Lecture 88 Factorial

Lecture 89 Fibonacci Series

Lecture 90 Sorted Array Check!

Lecture 91 Understanding Recursion Directions

Lecture 92 First Occurence

Lecture 93 First Occurence Code

Lecture 94 Last Occurence

Lecture 95 Last Occurence Code

Lecture 96 Power Function

Lecture 97 Power Function Optimised

Lecture 98 Bubble Sort

Lecture 99 Number Spell

Lecture 100 Tiling Problem Solution

Lecture 101 Binary Strings Solution

Lecture 102 Friend’s Party Solution

Section 11: Divide & Conquer

Lecture 103 Merge Sort

Lecture 104 Merge Sort Code

Lecture 105 Quick Sort

Lecture 106 Quick Sort Code

Lecture 107 Rotate Array Search

Lecture 108 Rotated Search Code

Section 12: Backtracking

Lecture 109 Backtracking Introduction

Lecture 110 Backtracking on Arrays Code

Lecture 111 Bactracking on Vectors Code

Lecture 112 Finding Subsets

Lecture 113 Finding Subsets Code

Lecture 114 Ordering Subsets

Lecture 115 Permutations

Lecture 116 N-Queen Problem

Lecture 117 N-Queen Code

Lecture 118 N-Queen All Ways

Lecture 119 Grid Ways

Lecture 120 Grid Ways – Math Trick!

Lecture 121 Sudoku

Lecture 122 Sudoku Code

Section 13: Space & Time Complexity Analysis

Lecture 123 Space Time Complexity Introduction

Lecture 124 Experimental Analysis

Lecture 125 Big O Notation

Lecture 126 Nested Loops

Lecture 127 Loops Example

Lecture 128 Analysis of Bubble Sort

Lecture 129 Analysis of Binary Search

Lecture 130 Merge Sort Analysis

Lecture 131 Time Complexity For Recursive Problems

Section 14: Object Oriented Programming

Lecture 132 Introduction to OOPS

Lecture 133 OOPS – Classes & Objects

Lecture 134 Code Demo

Lecture 135 Getters & Setters

Lecture 136 Constructor / Object Initialiastion

Lecture 137 Copy Constructor

Lecture 138 Shallow & Deep Copy

Lecture 139 Copy Assignment Operator

Lecture 140 Destructor

Lecture 141 Shopping Cart using OOPS

Section 15: Linked List

Lecture 142 Linked List Introduction

Lecture 143 Push Front

Lecture 144 Push Back

Lecture 145 Print

Lecture 146 Insert

Lecture 147 Searching

Lecture 148 Recursive Search

Lecture 149 Deletion

Lecture 150 Pop Front

Lecture 151 Reverse a Linked List

Lecture 152 Reverse a Linked List Code

Section 16: Stacks

Lecture 153 Stack Data Structure

Lecture 154 Stack Implementations

Lecture 155 Stack using Linked List

Lecture 156 Stack using Vector

Lecture 157 Stack STL

Lecture 158 Stack Insert At Bottom Challenge!

Lecture 159 Recursively Reverse a Stack

Lecture 160 Stock Span Solution

Section 17: Queues

Lecture 161 Queue Introduction

Lecture 162 Queue Implementation

Lecture 163 Queue using Circular Array

Lecture 164 Queue STL

Lecture 165 Stack using 2 Queues

Lecture 166 Stack using 2 Queues Code

Section 18: Binary Tree

Lecture 167 Binary Tree Introduction

Lecture 168 Build Tree Preorder

Lecture 169 Preorder Traversal

Lecture 170 Inorder Traversal

Lecture 171 Postorder Traversal

Lecture 172 Level Order Print

Lecture 173 Level Order Print Code

Lecture 174 Level Order Build

Lecture 175 Level Order Build Code

Lecture 176 Height of Tree

Lecture 177 Tree Diameter

Lecture 178 Diameter Code-I

Lecture 179 Diameter Code-II

Section 19: Binary Search Tree

Lecture 180 BST Introduction

Lecture 181 BST Creation

Lecture 182 Note!

Lecture 183 Searching

Lecture 184 Deletion Concept

Lecture 185 Deletion Code

Lecture 186 Challenge – Print in Range

Lecture 187 Root To Leaf Paths

Section 20: Heaps / Priority Queue

Lecture 188 Introduction to Heap

Lecture 189 Heap vs other Data Structure

Lecture 190 Heaps as CBT

Lecture 191 Heaps as Array

Lecture 192 Insertion

Lecture 193 Insertion Code

Lecture 194 Remove Min/ Max

Lecture 195 Remove Min/ Max Code

Lecture 196 Priority Queue STL

Lecture 197 Nearby Cars

Lecture 198 Nearby Cars Code

Section 21: Hashing

Lecture 199 Introduction to Hashing

Lecture 200 Hash Functions

Lecture 201 Collision Handling

Lecture 202 Hashing Code – I (Setup)

Lecture 203 Hashing Code – II (Insertion)

Lecture 204 Hashing Code – III (Rehashing)

Lecture 205 Testing our Hashtable

Lecture 206 Hashing Code – IV (Search)

Lecture 207 Hashing Code – V (Erase)

Lecture 208 Hashing Code – VI (Operator [] Overloading)

Lecture 209 [Webinar] Unordered Maps & Unordered Sets

Section 22: Trie Data Structure

Lecture 210 Trie Data Structure

Lecture 211 Trie Class

Lecture 212 Trie Insertion

Lecture 213 Trie Searching

Lecture 214 Trie Queries

Section 23: Graphs Introduction

Lecture 215 Graphs Introduction

Lecture 216 Graph Applications

Lecture 217 Adjacency List Representation

Lecture 218 Adjacency List Representation with Node Class

Lecture 219 BFS

Lecture 220 BFS Code

Lecture 221 DFS

Lecture 222 DFS Code

Lecture 223 Topological Ordering

Lecture 224 Kahn’s Algorithm (Modified BFS)

Lecture 225 Topological Ordering using BFS Code

Lecture 226 Dijkshtra’s Algorithm

Lecture 227 Dijkshtra’s Algorithm Code

Section 24: Dynamic Programming Introduction

Lecture 228 Dynamic Programming Basics

Lecture 229 Coin Change

Lecture 230 Coin Change Code

Lecture 231 Longest Common Subsequence (LCS)

Lecture 232 Longest Common Subsequence Code

Lecture 233 Knapsack Problem

Lecture 234 Knapsack Problem Code

Lecture 235 Wines Problem

Lecture 236 Wines Problem – II

Lecture 237 Wines – III

Lecture 238 Wines – IV

Section 25: Project – Shopping Cart Backend

Lecture 239 Shopping Cart Introduction

Lecture 240 Shopping Cart Demo

Lecture 241 Product Class

Lecture 242 Item Class

Lecture 243 Choosing Products

Lecture 244 Cart Implementation

Lecture 245 Checkout

Beginner level programmers,Students who want to learn data structures,Students from Computer Science & related branches,Working professionals who want to brush up internals of hashmaps, heaps, graphs etc

Course Information:

Udemy | English | 27h 27m | 8.13 GB
Created by: Prateek Narang

You Can See More Courses in the Developer >> Greetings from

New Courses

Scroll to Top