Mastering Data Structures & Algorithms using C and C++
4.6 (10,620 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
36,527 students enrolled

Mastering Data Structures & Algorithms using C and C++

Learn, Analyse and Implement Data Structure using C and C++. Learn Recursion and Sorting.
Bestseller
4.6 (10,620 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
36,527 students enrolled
Created by Abdul Bari
Last updated 8/2020
English
English [Auto]
Current price: $121.99 Original price: $174.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 56.5 hours on-demand video
  • 1 article
  • 236 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Learn various Popular Data Structures and their Algorithms.
  • Develop your Analytical skills on Data Structure and use then efficiently.
  • Learn Recursive Algorithms on Data Structures
  • Learn about various Sorting Algorithms
  • Implementation of Data Structures using C and C++
Requirements
  • Previous knowledge of Programming in C and C++
Description

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

Who this course is for:
  • Developer who want to get Deepest knowledge of Data Structure
  • Undergraduate who want to Learn Data Structures Perfectly
Course content
Expand all 374 lectures 56:20:49
+ Essential C and C++ Concepts
13 lectures 02:05:47
Arrays Basics
06:23
Structures
18:26
Pointers
11:01
Reference in C++
03:56
Pointer to Structure
06:17
Functions
12:19
Parameter Passing Methods
14:03
Array as Parameter
07:26
Structure as Parameter
10:32
Structures and Functions (Must Watch)
05:15
Converting a C program to a C++ class (Must Watch)
09:28
C++ Class and Constructor
09:52
Template classes
10:49
+ Required Setup for Programming
7 lectures 43:23
Setup Dev-C++ and Settings
05:21
Setup CodeBlocks and Settings
06:15
Debugging using Dev-C++
07:29
Debugging using CodeBlocks
06:15
Setup Visual Studio
06:09
Debugging using Visual Studio
06:02
Setup Xcode
05:52
+ Introduction
7 lectures 01:24:48

Learn What are Data Structures.

Comparing

1. Data Structure

2. Database

3. Datawarehouse

4. Big Data

Preview 13:28

Learn How program uses Main Memory. How program uses sections of Memory

Stack vs Heap Memory
08:59

Learn How function uses Stack, how memory is allocated when the function is called.

Learn how Heap is used with the help of Pointers

Stack vs Heap. Continued...
13:07

Difference between Physical and Logical Data Structures

Physical : Array and Linked List

Logical : Stack,Queues, Trees, Graphs, Hashtables

Preview 07:16

Learn what does it mean by Abstract Datatypes

ADT
14:30

Learn How to Analyse Time and Space of any Algorithm on Data Structures, based on working of Algorithm

Time and Space Complexity
18:19

Learn How to Analyse based on Code of Algorithm

Time and Space Complexity from Code
09:09
+ Recursion
33 lectures 05:05:51

Learn how to trace a Recursion

How Recursion Works ( Tracing )
19:04

General form of Recursion and its phases

1. Ascending Phase

2. Descending Phase

Generalising Recursion
02:07

Learn how Recursion uses Stack

How Recursion uses Stack
10:47

Learn how to find the Time complexity of Recursion using Recurrence Relation

Recurrence Relation - Time Complexity of Recursion
11:07
Lets Code Recursion
11:49

Learn how Static and Global variables are used in Recursion

Static and Global Variables in Recursion
08:29
Let's Code Static and Global in Recursion
07:01

Learn What does it mean by Tail Recursion, a recursion processing at calling time

Tail Recursion
07:21

Learn what does it mean by Head Recursion, a recursion processing at returning time

Head Recursion
04:54

Learn Tree Recursion, a Recursion calling itself more than one time

Tree Recursion
17:27
Let's Code Tree Recursion
05:36

Learn Indirect Recursion. two or more functions calling each other recursively.

Indirect Recursion
04:38
Let's Code Indirect Recursion
03:10

Learn Nested Recursion. a Function call is passed as parameter to itself.

Nested Recursion
07:05
Let's Code Nested Recursion
02:29

Finding Sum of first n natural numbers using Recursion and Iteration

Sum of Natural Number using Recursion
10:21
Let's Code Sum of N using Recursion
04:29

Finding Factorial using Recursion.

Factorial using Recursion
04:40
Let's Code Factorial using Recursion
04:58

Finding Power using Recursion and computing using less number of multiplications

Power using Recursion
13:39
Let's Code Power Recursion
03:39

Recursive function for Taylor Series using Static variables

Taylor Series using Recursion
14:18
Let's Code Taylor Series using Recursion
03:51

Apply Horner's Rule to reduce number of multiplications in Taylor Series.

Taylor Series using Horner's Rule
10:58
Let's Code Taylor Series Horner's Rule - Recursion
02:09
Let's Code Taylor Series Iterative
02:02

Learn about Fibonacci Series.

1. Iterative method for Fibonacci Series.

2. Recursive Method.

3. Using Memoization

Fibonacci Series using Recursion - Memoization
19:33
Let's Code Fibonacci
12:56

Learn how to devise a Recursive function for nCr formula using Pascals Triangle

nCr using Recursion
09:24
Let's Code nCr using Recursion
04:50

Devising a Recursive function for Tower of Hanoi

Tower of Hanoi Problem
26:12
Let's Code Tower of Hanoi
03:38
Recursion
5 questions
Quiz 1 Solutions
31:10
+ Arrays Representations
15 lectures 01:53:42

1. What is an Array

2. Declaring and Initialising Array

3. Accessing Elements of an Array

Introduction to Array
04:11
Declarations of Array
06:09
Demo - Array Declaration
04:54

Learn how to create Array in Stack and Heap.

Static vs Dynamic Arrays
08:47
Demo - Static vs Dynamic Array
04:41

How to change Size of an Array

How to Increase Array Size
05:09
Demo - Increasing Array Size
07:46

Learn various methods of creating 2D Array

2D Arrays
10:37
Demo - 2D Array
06:46

How Compiler manage Arrays, How compilers use Relative addresses

Array Representation by Compiler
08:43

Learn how Compilers use Relative address for Representing 2D arrays

Row Major Formula for 2D Arrays
09:37

Learn how Compilers use Relative address for Representing 2D arrays

Column Major Formula for 2D Arrays
06:30

Learn how Compilers use Relative address for Representing nD arrays

Formulas for nD Arrays
11:10

Learn how Compilers use Relative address for Representing 3D arrays

Formulas for 3D Arrays
03:37
Arrays Representation
4 questions
Solutions for Quiz 2
15:05
+ Array ADT
37 lectures 06:06:30

Learn how to represent Array as Abstract Datatype

Array ADT
04:34
Demo - Array ADT
13:03

Learn How to Insert an element in an Array at a given index by shifting elements

find the time complexity

Inserting in an Array
11:04
Let's Code Insert
06:49

Deleting an Element from given index

Time complexity

Best and Worst case Analysis

Deleting from Array
06:28
Let's Code Delete
05:46

Linear Search and its Analysis

Find Best Worst and Average Case Time

Linear Search
11:31

How to improve Linear Search for future Searches.

Improving Linear Search
04:18
Let's Code Linear Search
06:26

Learn how to Devise Binary Search

Binary Search
09:58

Write an Algorithm for Binary Search

Recursive Algorithm

Iterative Algorithm

Binary Search Algorithm
07:07
Let's Code Binary Search
06:58

Learn how to Analyse Binary Search

Best Case Analysis

Worst Case Analysis

Analysis of Binary Search
12:46

Learn how to do Average Case of Binary Search using Tree method

Average Case Analysis of Binary Search
11:25

Learn How to perform Get() / Set()/ Max() / Min()  Operations on an Array

Get( ) Set( ) Avg( ) Max( ) functions on Array
14:34
Let's Code Get() Set() Max() on Array
08:56

Learn Methods to Reverse elements of an Array

Learn what does it mean by Shifting elements

Reverse and Shift an Array
11:21
Lest's Code Reversing an Array
05:37

Learn how to Check if Array is Already Sorted

Learn How to insert an element in a Sorted position

Learn how to arrange All negatives on one side and Positives another side.

Check if Array is Sorted
15:45
Let's Code to check if Array is Sorted
10:37
Merging Arrays
08:49
Let's Code to Merge Arrays
07:53
Set operations on Array - Union, Intersection and Difference
12:01
Let's Code Set operations on Array
09:23
Let's Code a Menu Driver program for Arrays
07:28
Let's convert C program for Array to C++
15:50
Let's Put all together in C++ program for Array
16:48
Student Challenge : Finding Single Missing Element in an Array
10:59
Student Challenge : Finding Multiple Missing Elements in an Array
08:05
Student Challenge : Finding Missing Element in an Array Method 2
08:03
Student Challenge Finding Duplicates in a Sorted Array
12:53
Student Challenge : Finding Duplicates in Sorted Array using Hashing
07:29
Student Challenge : Finding Duplicates in a Unsorted Array
13:12
Student Challenge : Finding a Pair of Elements with sum K
13:03
Student Challenge : Finding a Pair of Elements with sum K in Sorted Array
07:35
Student Challenge : Finding Max and Min in a single Scan
09:01
Array ADT
5 questions
Solutions for Quiz 3
12:55
+ Strings
11 lectures 02:33:56
Introduction to Strings
23:16
Finding Length of a String
04:42
Changing Case of a String
08:03
Counting Words and Vowels in a String
08:55
Validating a String
06:02
Reversing a String
08:44
Comparing Strings and Checking Palindrome
11:02
Finding Duplicates in a String
12:54
Finding Duplicates in a String using Bitwise Operations
25:09
Checking if 2 Strings are Anagram (distinct letters)
13:38
Permutation of String
31:31
+ Matrices
17 lectures 02:18:16

Introduction to Section

Section Introduction
00:59

Learn How to Represent Diagonal Matrix in a Single Dimension Array by storing only non-zero elements

Diagonal Matrix
08:40
Let's Code Diagonal Matrix
07:46
C++ class for Diagonal Matrix
13:42
Let's Code C++ class for Diagonal matrix
07:03

Learn How to Represent Lower Triangular Matrix in a Single Dimension Array by storing only non-zero elements

Row-by-Row Representation

Lower Triangular Matrix Row-Major Mapping
09:26

Learn How to Represent Lower Triangular Matrix in a Single Dimension Array by storing only non-zero elements

Column-by-Column Representation

Lower Triangular Matrix Column-Major Mapping
06:37
Let's Code Lower Triangular Matrix in C
12:48
Let's Code Lower Triangular Matrix in C++
09:54

Learn How to Represent Upper Triangular Matrix in a Single Dimension Array by storing only non-zero elements

Row-by-Row Representation

Upper Triangular Matrix Row-Major Mapping
06:46

Learn How to Represent Upper Triangular Matrix in a Single Dimension Array by storing only non-zero elements

Column-by-Column Representation

Upper Triangular Matrix Column-Major Mapping
03:21

Learn How to Represent Symmetric Matrix in a Single Dimension Array by storing only non-zero elements


Symmetric Matrix
02:32

Learn How to Represent Trim-Diagonal and Trim-Band Matrix in a Single Dimension Array by storing only non-zero elements

Tri-Diagonal and Tri-Band Matrix
09:41

Learn How to Represent Toeplitz Matrix in a Single Dimension Array by storing only non-zero elements


Toeplitz Matrix
07:15
Menu Driven Program for Matrices
14:57
Menu Driven Program for Matrices using Functions
04:53
How to Write C++ Classes for All Matrices
11:56
Matrices
3 questions
+ Sparse Matrix and Polynomial Representation
12 lectures 02:13:27

Learn How to Represent a Sparse Matrix

1. 3-Column Representation

2. Compressed Sparse Row Representation

Sparse Matrix Representation
08:50

Learn How to Add 2 Sparse Matrices using Representation

Addition of Sparse Matrices
09:17

Learn how to Create a Data Structure for storing Sparse Matrix

Array Representation of Sparse Matrix
11:21
Let's Code to Create Sparse Matrix
10:25
Program for Adding Sparse Matrix
15:20
Let's Code to Add Sparse Matrix
13:32
Let's Code Sparse Matrix using C++
09:09
Let's Code Sparse Matrix using C++ Continued.....
14:43

Learn about Polynomial Representation

Polynomial Representation
10:25

Learn how to Evaluate Polynomial using its Representation

Polynomial Evaluation
04:04

Learn how to Add 2 Polynomials using representation

Polynomial Addition
08:58
Let's Code Polynomial
17:23