Mastering Data Structures & Algorithms using C and C++
-
Before We Start
-
Essential C and C++ ConceptsArrays BasicsPractice : Arrays BasicsStructuresPractice : StructuresPointersPractice : PointersReference in C++Practice : ReferencePointer to StructurePractice : Pointer to StructureFunctionsPractice : FunctionsParameter Passing MethodsPractice : Parameter Passing MethodsArray as ParameterPractice : Array as ParameterStructure as ParameterPractice : Structure as ParameterStructures and Functions (Must Watch)Converting a C program to a C++ class (Must Watch)Practice : Monolithic ProgramPractice : Modular ProgramPractice : Structure and FunctionsPractice : Object-Oriented ProgramC++ Class and ConstructorPractice : C++ ClassTemplate classesPractice : Template Class
-
Required Setup for Programming
-
Introduction
-
RecursionHow Recursion Works ( Tracing )Generalising RecursionHow Recursion uses StackRecurrence Relation – Time Complexity of RecursionLets Code RecursionStatic and Global Variables in RecursionLet’s Code Static and Global in RecursionTail RecursionHead RecursionTree RecursionLet’s Code Tree RecursionIndirect RecursionLet’s Code Indirect RecursionNested RecursionLet’s Code Nested RecursionSum of Natural Number using RecursionLet’s Code Sum of N using RecursionFactorial using RecursionLet’s Code Factorial using RecursionPower using RecursionLet’s Code Power RecursionTaylor Series using RecursionLet’s Code Taylor Series using RecursionTaylor Series using Horner’s RuleLet’s Code Taylor Series Horner’s Rule – RecursionLet’s Code Taylor Series IterativeFibonacci Series using Recursion – MemoizationLet’s Code FibonaccinCr using RecursionLet’s Code nCr using RecursionTower of Hanoi ProblemLet’s Code Tower of HanoiRecursionQuiz 1 Solutions
-
Arrays RepresentationsIntroduction to ArrayDeclarations of ArrayDemo – Array DeclarationStatic vs Dynamic ArraysDemo – Static vs Dynamic ArrayHow to Increase Array SizeDemo – Increasing Array Size2D ArraysDemo – 2D ArrayArray Representation by CompilerRow Major Formula for 2D ArraysColumn Major Formula for 2D ArraysFormulas for nD ArraysFormulas for 3D ArraysArrays RepresentationSolutions for Quiz 2
-
Array ADTArray ADTDemo – Array ADTInserting in an ArrayLet’s Code InsertDeleting from ArrayLet’s Code DeleteLinear SearchImproving Linear SearchLet’s Code Linear SearchBinary SearchBinary Search AlgorithmLet’s Code Binary SearchAnalysis of Binary SearchAverage Case Analysis of Binary SearchGet( ) Set( ) Avg( ) Max( ) functions on ArrayLet’s Code Get() Set() Max() on ArrayReverse and Shift an ArrayLet’s Code Reversing an ArrayCheck if Array is SortedLet’s Code to check if Array is SortedMerging ArraysLet’s Code to Merge ArraysSet operations on Array – Union, Intersection and DifferenceLet’s Code Set operations on ArrayLet’s Code a Menu Driver program for ArraysLet’s convert C program for Array to C++Let’s Put all together in C++ program for ArrayStudent Challenge : Finding Single Missing Element in an ArrayStudent Challenge : Finding Multiple Missing Elements in an ArrayStudent Challenge : Finding Missing Element in an Array Method 2Student Challenge Finding Duplicates in a Sorted ArrayStudent Challenge : Finding Duplicates in Sorted Array using HashingStudent Challenge : Finding Duplicates in a Unsorted ArrayStudent Challenge : Finding a Pair of Elements with sum KStudent Challenge : Finding a Pair of Elements with sum K in Sorted ArrayStudent Challenge : Finding Max and Min in a single ScanArray ADTSolutions for Quiz 3
-
StringsIntroduction to StringsFinding Length of a StringChanging Case of a StringCounting Words and Vowels in a StringValidating a StringReversing a StringComparing Strings and Checking PalindromeFinding Duplicates in a StringFinding Duplicates in a String using Bitwise OperationsChecking if 2 Strings are Anagram (distinct letters)Permutation of String
-
MatricesSection IntroductionDiagonal MatrixLet’s Code Diagonal MatrixC++ class for Diagonal MatrixLet’s Code C++ class for Diagonal matrixLower Triangular Matrix Row-Major MappingLower Triangular Matrix Column-Major MappingLet’s Code Lower Triangular Matrix in CLet’s Code Lower Triangular Matrix in C++Upper Triangular Matrix Row-Major MappingUpper Triangular Matrix Column-Major MappingSymmetric MatrixTri-Diagonal and Tri-Band MatrixToeplitz MatrixMenu Driven Program for MatricesMenu Driven Program for Matrices using FunctionsHow to Write C++ Classes for All MatricesMatrices
-
Sparse Matrix and Polynomial RepresentationSparse Matrix RepresentationAddition of Sparse MatricesArray Representation of Sparse MatrixLet’s Code to Create Sparse MatrixProgram for Adding Sparse MatrixLet’s Code to Add Sparse MatrixLet’s Code Sparse Matrix using C++Let’s Code Sparse Matrix using C++ Continued…..Polynomial RepresentationPolynomial EvaluationPolynomial AdditionLet’s Code Polynomial
-
Linked ListWhy we need Dynamic Data Structure Linked ListAbout Linked ListMore About Linked ListDisplay Linked ListLet’s Code Display for Linked ListRecursive Display of Linked ListLet’s Code Recursive Display for Linked ListCounting Nodes in a Linked ListSum of All Elements in a Linked ListLet’s Code Count and SumMaximum Element in a Linked ListLet’s Code Max for Linked ListSearching in a Linked ListImprove Searching in Linked ListLet’s Code Searching in Linked ListInserting in a Linked ListLet’s Code Insert for Linked ListCreating a Linked List using InsertCreating a Linked List by Inserting at LastInserting in a Sorted Linked ListLet’s Code Insert in Sorted Linked ListDeleting from Linked ListLet’s Code Delete on Linked ListCheck if a Linked List is SortedLet’s Code to check if Linked List is SortedRemove Duplicates from Sorted Linked ListLet’s Code to Remove Duplicates from Sorted Linked ListReversing a Linked ListReversing using Sliding PointersRecursive Reverse for Linked ListLet’s Code Reversing a Linked ListConcatenating 2 Linked ListsMerging 2 Linked ListsLet’s Code to Concatenate and Merge Linked ListsCheck for LOOP in Linked ListLet’s Code to Check LOOPLet’s Code a C++ class for Linked ListCircular Linked ListDisplay Circular Linked ListLet’s Code Circular Linked ListInserting in a Circular Linked ListLet’s Code Insert for a Circular Linked ListDeleting From Circular Linked ListLet’s Code Delete for Circular Linked ListDoubly Linked ListLet’s Code Doubly Linked ListInsert in a Doubly Linked ListLet’s Code Insert for Doubly Linked ListDeleting from Doubly Linked ListLet’s Code Delete for Doubly Linked ListReverse a Doubly Linked ListLet’s Code Reverse for Doubly Linked ListCircular Doubly Linked ListComparison of Linked ListComparison of Array with Linked ListStudent Challenge : Finding Middle Element of a Linked List.Student Challenge : Finding Intersecting point of Two Linked ListLinked List
-
Sparse Matrix and Polynomial using Linked List
-
StackIntroduction to StackStack using ArrayImplementation on Stack using ArrayLet’s Code Stack using ArrayStack using Linked ListStack Operations using Linked ListLet’s Code Stack using Linked ListLet’s Code C++ class for Stack using Linked ListParenthesis MatchingProgram for Parenthesis MatchingLet’s Code Parenthesis MatchingMore on Parenthesis MatchingInfix to Postfix ConversionAssociativity and Unary OperatorsInfix to Postfix using Stack Method 1Infix to Postfix using Stack Method 2Program for Infix to Postfix ConversionLet’s Code Infix to Postfix ConversionStudent Challenge: Infix to Postfix with Associativity and ParenthesisEvaluation of Postfix ExpressionProgram for Evaluation of PostfixLet’s Code Evaluation of PostfixStack
-
QueuesQueue ADTQueue using Single PointerQueue using Two PointersImplementing Queue using ArrayLet’s Code Queue using ArrayLet’s Code Queue in C++Drawback of Queue using ArrayCircular QueueLet’s Code Circular QueueQueue using Linked ListLet’s Code Queue using Linked ListDouble Ended Queue DEQUEUEPriority QueuesQueue using 2 StacksQueue
-
TreesTerminologyNumber of Binary Trees using N NodesHeight vs Nodes in Binary TreeInternal Nodes vs External Nodes in Binary TreeStrict Binary TreeHeight vs Node of Strict Binary TreeInternal vs External Nodes of Strict Binary Treesn-ary TreesAnalysis of n-Ary TreesRepresentation of Binary TreeLinked Representation of Binary TreeFull vs Complete Binary TreeStrict vs Complete Binary TreeBinary Tree TraversalsBinary Tree Traversal Easy Method 1Binary Tree Traversal Easy Method 2Binary Tree Traversal Easy Method 3Creating Binary TreeProgram to Create Binary TreeLet’s Code Creating Binary TreeLet’s Code Creating Binary Tree in C++Preorder Tree TraversalInorder Tree Traversals FunctionsIterative PreorderIterative InorderLet’s Code Iterative TraversalsLevel Order TraversalLet’s Code Level Order TraversalCan we Generate Tree from TraversalsGenerating Tree from TraversalsHeight and Count of Binary TreeLet’s Code Height and CountStudent Challenge : Count Leaf Nodes of a Binary TreeBinary Trees
-
Binary Search TreesBST introSearching in a Binary Search TreeInserting in a Binary Search TreeRecursive Insert in Binary Search TreeCreating a Binary Search TreeLet’s code Binary Search TreeDeleting from Binary Search TreeLet’s Code Recursive Insert and Delete on BSTGenerating BST from PreorderProgram for Generating BST from PreorderDrawbacks of Binary Search TreeBinary Search Trees
-
AVL Trees
-
Search Trees
-
Heap
-
Sorting TechniquesCriteria used for Analysing SortsBubble SortLet’s Code Bubble SortInsertion SortInsertion Sort Continued….Program for Insertion SortAnalysis of Insertion SortLet’s Code Insertion SortComparing Bubble and Insertion SortSelection SortProgram for Selection SortAnalysis of Selection SortLet’s Code Selection SortIdea behind Quick SortQuick SortAnalysis of Quick SortAnalysis of Quick Sort Continued…..Let’s Code Quick SortMergingIterative Merge SortLet’s Code Iterative Merge SortRecursive Merge SortLet’s Code Recursive Merge SortCount SortLet’s Code Count SortBin / Bucket SortRadix SortShell SortLet’s Code Shell Sort
-
Hashing Technique
-
GraphsIntroduction to GraphsRepresentation of Undirected GraphRepresentation of Directed GraphsBreadth First SearchProgram for BFSDepth First SearchProgram for DFSLet’s Code BFS & DFSSpanning TreesPrim’s Minimum Cost Spanning TreePrim’s ProgramLet’s Code Prim’s usingKruskal’s Minimum Cost Spanning TreeDisjoint SubsetsKruskal’s ProgramLet’s Code Kruskla’s ProgramGraphs
-
Asymptotic Notations
You may be new to Data Structure or you have already Studied and Implemented Data Structures but still you feel you need to learn more about Data Structure in detail so that it helps you solve challenging problems and used Data Structure efficiently.
This 53 hours of course covers each topic in greater details, every topic is covered on Whiteboard which will improve your Problem Solving and Analytical Skills. Every Data Structure is discussed, analysed and implemented with a Practical line-by-line coding.
Source code for all Programs is available for you to download
About Instructor
I am the Instructor of this course, I have been teaching this course to university students for a long period of time, I know the pulse of students very well, I know how to present the topic so that it’s easy to grasp for students.
I know how to use White board to explain the topic and also to make it memorable. Remembering the thing and using them in right place is more important than just understanding the topic.
After Completing Course
After completing this course you will be confident enough to take up any challenging problem in coding using Data Structures.
Course Contents
1. Recursion
2. Arrays Representation
3. Array ADT
4. Linked List
5. Stack
6. Queues
7. Trees
8. Binary Search Tree
9. AVL Trees
10. Graphs
11. Hashing Technique
What's included
- 58.5 hours on-demand video
- 1 article
- 276 downloadable resources
- Access on mobile and TV
- Certificate of completion