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
Requirements
Familiarity with any one programming language
Ability to understand & write code (preferably C/C++)
Understanding of Loops, Variables, Conditional Statements
Description
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.
Overview
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 CourseDown.com