
Learn data structures and algorithms with hands-on coding, whiteboard explanations, a PDF for the program, while practicing time and space analysis and asymptotic notations like big o, omega, and theta.
Explore arrays in C and C++, create and initialize arrays, access elements by index, and practice with for loops and for each loops to understand memory usage and zero initialization.
Explore pointers in c and c++, including declaration, address-of, and dereferencing. Demonstrate heap allocation with malloc and new, and deallocation with free and delete; pointer sizes on 64-bit systems.
Access and modify a structure's members using a pointer and the arrow operator. Allocate a structure on the heap with malloc and cast, then set its length and breadth.
Demonstrate pointers to a structure by accessing length and breadth with dot and arrow operators. Note heap allocation with malloc and new, and printing with printf or cout.
Explore modular programming with functions, including prototypes, declarations, and definitions, and learn about actual versus formal parameters and pass by value, address, and reference.
Learn to implement and use functions in C and C++, including creating an add function that takes two integers, computes a sum, and demonstrates parameter passing and return values.
Explore parameter passing methods in C and C++: pass by value, pass by address with pointers, and pass by reference in C++ with a swap example.
Learn how arrays are passed as parameters in C and C++ by address. See how a function can modify original array and return array via a pointer allocated on heap.
Practice array as parameter: learn pass by address, why you pass size, and how pointers and for loops access elements. See memory returns by creating and returning a heap-allocated array.
Explore passing a structure as a parameter in C and C++. Compare call by value, call by reference, and call by address with rectangle and area calculation, including array handling.
Convert a C program to C++ by turning a rectangle struct into a class with private data and public constructors and methods, enabling object initialization and area computation.
Demonstrates the monolithic programming style by building a simple C/C++ program that reads length and breadth and computes area and perimeter of a rectangle.
Break a monolithic program into modular, procedural components by creating area and perimeter functions that take length and breadth as parameters, return results, and let main handle user interaction.
Demonstrate a C++ rectangle class with private length and breadth, including default and parameterized constructors, area and perimeter methods, mutator and accessor functions, and a destructor.
Explore how template classes enable a single arithmetic class to operate over any data type, performing add and subtract with int, float, or double.
Convert a concrete arithmetic class into a generic template class in C++, using this pointer and scope resolution to implement template methods, enabling support for int, float, and char types.
Install CodeBlocks with MinGW, then create a console C++ project, edit main.cpp, build and run to see a hello world program.
Learn to download and install Dev-C++, set up MinGW, enable debugging with -G, enable C++11 with -std=c++11, then create a console project and run a Hello World program.
Master using the code blocks debugger to trace a C++ program line by line, set breakpoints and watches, and verify the sum of array elements.
Learn What are Data Structures.
Comparing
1. Data Structure
2. Database
3. Datawarehouse
4. Big Data
Learn How program uses Main Memory. How program uses sections of Memory
Learn How function uses Stack, how memory is allocated when the function is called.
Learn how Heap is used with the help of Pointers
Difference between Physical and Logical Data Structures
Physical : Array and Linked List
Logical : Stack,Queues, Trees, Graphs, Hashtables
Learn what does it mean by Abstract Datatypes
Learn How to Analyse Time and Space of any Algorithm on Data Structures, based on working of Algorithm
Learn How to Analyse based on Code of Algorithm
Learn how to trace a Recursion
General form of Recursion and its phases
1. Ascending Phase
2. Descending Phase
Learn how Recursion uses Stack
Learn how to find the Time complexity of Recursion using Recurrence Relation
Explore recursion in C by implementing a tail recursive function and comparing it with head recursion, observing stack usage, debugging with breakpoints, and printing behavior on return.
Learn how Static and Global variables are used in Recursion
Learn What does it mean by Tail Recursion, a recursion processing at calling time
Learn what does it mean by Head Recursion, a recursion processing at returning time
Learn Tree Recursion, a Recursion calling itself more than one time
Learn Indirect Recursion. two or more functions calling each other recursively.
Learn Nested Recursion. a Function call is passed as parameter to itself.
Finding Sum of first n natural numbers using Recursion and Iteration
Finding Factorial using Recursion.
Finding Power using Recursion and computing using less number of multiplications
Recursive function for Taylor Series using Static variables
Code a recursive Taylor series for e^x in C/C++, using p and f to manage powers and factorials. Show improved accuracy with more terms and validate against a calculator.
Apply Horner's Rule to reduce number of multiplications in Taylor Series.
Implement a recursive Taylor series for e^x using Horner's rule in C and C++. Handle double precision and avoid integer division with typecasting, and verify results by printing the output.
Learn about Fibonacci Series.
1. Iterative method for Fibonacci Series.
2. Recursive Method.
3. Using Memoization
Learn how to devise a Recursive function for nCr formula using Pascals Triangle
implement factorial-based and recursive nCr calculations in c and c++, building a factorial function, a nonrecursive nCr, and a recursive nCr with integer results.
Devising a Recursive function for Tower of Hanoi
1. What is an Array
2. Declaring and Initialising Array
3. Accessing Elements of an Array
Learn how to create Array in Stack and Heap.
How to change Size of an Array
This demo shows increasing a heap array by allocating a larger block with malloc, copying values from p to q, freeing p, and reassigning p to q with q null.
Learn various methods of creating 2D Array
Explore three ways to create two-dimensional arrays in C: stack-allocated 3x4 arrays, heap-allocated rows via an array of pointers, and a double-pointer approach with malloc, including printing and garbage values.
How Compiler manage Arrays, How compilers use Relative addresses
Learn how Compilers use Relative address for Representing 2D arrays
Learn how Compilers use Relative address for Representing 2D arrays
Learn how Compilers use Relative address for Representing nD arrays
Learn how Compilers use Relative address for Representing 3D arrays
Explore array addressing in two-dimensional layouts, including base address calculations, pointer arithmetic, and row-major versus column-major mapping, with deducing data type and dimensions from stepwise evaluation.
Learn how to represent Array as Abstract Datatype
Demonstrates implementing an array ADT in C and C++ by defining a structure with size, length, and a heap-allocated A, reading elements, and displaying them.
Learn How to Insert an element in an Array at a given index by shifting elements
find the time complexity
Deleting an Element from given index
Time complexity
Best and Worst case Analysis
Implement a delete operation on an array by index, shifting elements and updating the length. Return the deleted value and validate the index, illustrating the process in main.
Linear Search and its Analysis
Find Best Worst and Average Case Time
How to improve Linear Search for future Searches.
Learn how to Devise Binary Search
Write an Algorithm for Binary Search
Recursive Algorithm
Iterative Algorithm
Learn how to Analyse Binary Search
Best Case Analysis
Worst Case Analysis
Learn how to do Average Case of Binary Search using Tree method
Learn How to perform Get() / Set()/ Max() / Min() Operations on an Array
Learn Methods to Reverse elements of an Array
Learn what does it mean by Shifting elements
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.
Learn to insert an element into a sorted array, verify if an array is sorted, and rearrange negatives and positives using a single in-place algorithm in C and C++.
Merge two sorted lists into a single sorted array using i, j, and k pointers, handle remaining elements, and achieve theta(m+n) time complexity.
Demonstrate merging two arrays into a new heap-allocated array using a merge function, comparing elements and appending leftovers to produce a sorted result.
Demonstrate union, intersection, and difference on sorted and unsorted arrays using a merge-based approach, with a single C and C++ project implementing set operations.
Convert a C array program into a C++ class named Array, using dynamic memory, constructors, and destructor. Organize code with private data and public member functions for array operations.
Learn to implement a dynamic C++ array as a class with constructors, destructor, and insert, delete, display functions, then convert it to a template for generic types.
Study method 2 for finding missing elements by marking a hash-like array (bitset) of size equal to the max element, then scanning for zeros to reveal absent numbers.
Master how to find duplicates in a sorted array using a hash table, counting each element's occurrences, and display duplicates with their counts in linear time.
Find pairs in a sorted array whose sum equals a target using left and right pointers. Move pointers based on the sum, print matches, and run in linear time.
Find max and min in a single scan by updating min and max per element and skipping the max check when a value is smaller than min. Demonstrates linear time.
Explore how ASCII codes define characters and how C handles character arrays and strings with a null terminator. Learn to declare, initialize, print, and read strings.
Learn to change string case using ascii codes, converting uppercase to lowercase and vice versa, and toggling case with a for loop and 32 difference.
Validate a string by ensuring only alphabets and digits are allowed, rejecting any special characters. Learn two methods—simple character checks and regular expressions—in C and C++.
Explore two methods to reverse a string in C and C++: copy into a separate array using a reverse loop, and perform in-place swapping with two indices.
Learn how to compare two strings, determine dictionary order, and check palindromes using character-by-character comparison and case-insensitive options, with practical C/C++ examples.
Identify duplicates of letters in a string by comparing characters and counting with a 26-slot hash table using ASCII codes; note a bit-based method is coming next.
Introduction to Section
Learn How to Represent Diagonal Matrix in a Single Dimension Array by storing only non-zero elements
Learn How to Represent Lower Triangular Matrix in a Single Dimension Array by storing only non-zero elements
Row-by-Row Representation
Learn How to Represent Lower Triangular Matrix in a Single Dimension Array by storing only non-zero elements
Column-by-Column Representation
Implement a lower triangular matrix in C using row major and column major representations, with dynamic memory, set, get, and display functions, and keyboard input for dimensions and elements.
Learn How to Represent Upper Triangular Matrix in a Single Dimension Array by storing only non-zero elements
Row-by-Row Representation
Learn How to Represent Upper Triangular Matrix in a Single Dimension Array by storing only non-zero elements
Column-by-Column Representation
Learn How to Represent Symmetric Matrix in a Single Dimension Array by storing only non-zero elements
Learn How to Represent Trim-Diagonal and Trim-Band Matrix in a Single Dimension Array by storing only non-zero elements
Learn How to Represent Toeplitz Matrix in a Single Dimension Array by storing only non-zero elements
The lecture demonstrates how to build a menu driven matrix program using functions, with create, get, set, and display operations, using an array and a dimension n.
Learn to implement C++ classes for diagonal and lower triangular matrices, with heap-allocated storage, constructors/destructors, and a menu-driven program to create, display, and access elements.
Learn How to Represent a Sparse Matrix
1. 3-Column Representation
2. Compressed Sparse Row Representation
Learn How to Add 2 Sparse Matrices using Representation
Learn how to Create a Data Structure for storing Sparse Matrix
Learn to implement a sparse matrix in C by defining element and sparse structures, reading dimensions and non-zero elements, allocating memory, and displaying the full matrix.
Implement a C function add that sums two sparse matrices by address, allocates the sum on the heap with malloc, and merges nonzero elements by row and column.
Learn about Polynomial Representation
Learn how to Evaluate Polynomial using its Representation
Learn how to Add 2 Polynomials using representation
Explore polynomial representation and evaluation in C and C++ by defining term and poly structures, dynamically allocating memory, and reading, displaying, and adding polynomials with pointer-based functions.
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