We may earn an affiliate commission when you visit our partners.
Abdul Bari

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

Read more

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

Enroll now

Here's a deal for you

We found an offer that may be relevant to this course.
Save money when you learn. All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

What's inside

Learning objectives

  • 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++

Syllabus

Before we Start
Instructor's Note
Introduction
Revising Concept, used in this course
Read more

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

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

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

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

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

Learn various methods of creating 2D Array

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 nD arrays

Learn how Compilers use Relative address for Representing 3D arrays

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Covers data structures and algorithms in depth, which are essential for coding interviews and building efficient software, making it highly relevant for career advancement
Requires familiarity with C and C++, which may pose a barrier to entry for individuals without prior experience in these languages, so learners should come prepared
Includes hands-on coding of data structures, which reinforces theoretical knowledge and develops practical problem-solving skills, which is useful for building a portfolio
Emphasizes whiteboard explanations and problem-solving, which can improve analytical skills and the ability to explain solutions clearly, which is useful for collaboration
Uses older IDEs like CodeBlocks and Dev-C++, which may not be as relevant as more modern tools like VS Code or CLion, so learners should be aware of this
Includes a comprehensive overview of recursion, which is a fundamental concept in computer science and is essential for understanding many data structures and algorithms

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Detailed ds & algorithms with c/c++

According to learners, this course offers a comprehensive deep dive into Data Structures and Algorithms using C and C++. Students consistently highlight the instructor's clear explanations, often delivered effectively via whiteboard sessions that aid analytical skill development. The line-by-line coding demonstrations are frequently mentioned as a helpful aid for understanding implementation details. While many find the depth of coverage excellent for building a strong foundation, particularly for technical interviews, some note that the pacing can feel slow at times, especially if you have some prior experience. A common suggestion is the desire for more practice problems beyond the coding demos provided. Overall, the sentiment is largely positive, praising the course's thoroughness and the instructor's teaching style, though some feel it could benefit from additional practice opportunities.
Prior C/C++ knowledge recommended.
"While it covers basics, a solid foundation in C/C++ pointers and memory allocation beforehand is highly recommended."
"If you're completely new to C/C++, the initial pace might still be challenging despite the intro sections."
"I found it helpful to review C/C++ basics before diving into the DS concepts."
"The course dives deep into DS concepts quickly after the initial review, which might be tough without prior language familiarity."
Detailed pace may feel slow for some.
"For me, the pace was a bit slow at times, especially the prerequisite sections."
"Sometimes felt repetitive, especially if you have some background in C/C++ or basic DS."
"It's a long course (~53 hours), be prepared for the time commitment; it's very detailed."
"Moves at a steady pace, which is excellent for beginners but might be too slow if you're looking for a quick brush-up."
Line-by-line coding reinforces theory.
"Seeing the code implemented line-by-line made a big difference in connecting theory to practice."
"The coding demos reinforced the theoretical concepts and showed practical applications."
"Having the source code available is great for reviewing and experimenting on my own."
"Practical coding examples help solidify learning and understand implementation details."
"Watching the code being written step-by-step is a major plus."
Instructor explains complex concepts clearly.
"The instructor's explanations on the whiteboard were incredibly helpful for visualizing the concepts."
"He breaks down complex ideas into simple, digestible steps."
"His teaching style makes difficult topics understandable, even for tricky subjects like trees or graphs."
"I could follow along easily thanks to the clear lectures and examples."
"The way the concepts are explained really helps with problem-solving."
Course provides excellent depth on DS/Algos.
"The course goes into amazing detail on each data structure, much more than I expected."
"I really appreciate how deeply recursion was explained, breaking it down into all its types."
"This course didn't just skim the surface; it built a solid understanding from the ground up."
"Covers a wide range of essential DS/Algo topics thoroughly."
"Much more comprehensive and detailed than other courses I've tried."
More practice problems desired by students.
"I wish there were more practice problems or assignments to solve on my own to test understanding."
"The course explains well but lacks sufficient exercises for students to practice independently."
"More hands-on exercises or coding challenges would help reinforce learning significantly."
"Relies mostly on coding demos; student practice opportunities are limited within the course structure."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Mastering Data Structures & Algorithms using C and C++ with these activities:
Review Pointers in C/C++
Solidify your understanding of pointers, a fundamental concept in C and C++, before diving into data structures. A strong grasp of pointers is crucial for efficient memory management and implementing complex data structures.
Browse courses on Pointers
Show steps
  • Review the syntax and usage of pointers in C/C++.
  • Practice pointer arithmetic and memory allocation.
  • Work through examples of using pointers with arrays and structures.
Review 'Data Structures and Algorithms in C++' by Adam Drozdek
Deepen your understanding of data structures and algorithms with a comprehensive textbook. This book provides detailed explanations and C++ implementations of various data structures.
Show steps
  • Read the chapters relevant to the data structures covered in the course.
  • Work through the examples and exercises in the book.
  • Compare the book's implementations with the course's implementations.
Follow advanced C++ tutorials on data structures
Refine your skills by following tutorials on advanced C++ data structure implementations. This will expose you to different coding styles and optimization techniques.
Show steps
  • Find tutorials on topics like AVL trees or graph algorithms.
  • Follow the tutorial step-by-step, understanding each line of code.
  • Adapt the code to your own projects and coding style.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Implement basic data structures from scratch
Reinforce your understanding by implementing fundamental data structures like linked lists, stacks, and queues in C/C++. This hands-on practice will solidify your grasp of the underlying concepts.
Show steps
  • Choose a data structure (e.g., linked list).
  • Implement the basic operations (e.g., insertion, deletion, traversal).
  • Test your implementation thoroughly.
Build a simple address book application
Apply your knowledge by building a practical application that utilizes various data structures. This project will help you integrate different concepts and develop problem-solving skills.
Show steps
  • Design the data structures to store contact information.
  • Implement the functionality to add, delete, search, and display contacts.
  • Use appropriate data structures for efficient storage and retrieval.
Review 'Introduction to Algorithms' by Cormen et al.
Supplement your learning with a classic algorithms textbook. This book provides a theoretical foundation for understanding the efficiency and complexity of different algorithms.
Show steps
  • Read the chapters relevant to the algorithms covered in the course.
  • Focus on understanding the pseudocode and theoretical analysis.
  • Try to implement the algorithms in C++ based on the pseudocode.
Contribute to an open-source data structures library
Enhance your skills and contribute to the community by contributing to an open-source data structures library. This will provide valuable experience in working with real-world code and collaborating with other developers.
Show steps
  • Find an open-source data structures library on platforms like GitHub.
  • Identify a bug or a feature that you can contribute.
  • Submit a pull request with your changes.

Career center

Learners who complete Mastering Data Structures & Algorithms using C and C++ will develop knowledge and skills that may be useful to these careers:
Algorithm Engineer
An algorithm engineer designs and develops algorithms to solve complex problems, and this course's detailed exploration of data structures and algorithms is extremely relevant. The course, with its depth in recursion, sorting, and other algorithmic techniques, helps build a foundation for this role. An algorithm engineer needs expertise in analyzing the performance of algorithms and implementing them, which is a focus of this course. The fact that the course emphasizes practical, line-by-line coding in C and C++ also benefits the work of an algorithm engineer. The course's deep exploration of data structure implementations will benefit those who aim for roles in algorithm engineering.
Software Developer
A software developer creates applications and systems, and this course provides a strong foundation in data structures and algorithms, which are essential for efficient coding. The course emphasizes implementation in C and C++, languages commonly used in performance-critical software development. This is useful for a software developer because it explores various data structures, including arrays, linked lists, stacks, queues, trees, graphs, and hash tables. The course's focus on problem-solving, and its hands-on coding approach, prepares a software developer to tackle complex challenges and write optimized code. Understanding how algorithms behave regarding time and space complexity, also covered by this course, are crucial in a software development career.
Compiler Engineer
A compiler engineer develops the software that translates programming languages into machine code. This course may be useful if a candidate is specifically interested in the low-level optimizations done by a compiler and the efficient data handling it requires. The compiler engineering role benefits from the strong foundation in data structures and algorithms this course offers. The course teaches memory management and the representation of arrays, which are concepts directly relevant to compiler design. The emphasis on efficient coding, with the use of C and C++, also helps the work of a compiler engineer who often needs to work with low level languages.
Systems Programmer
A systems programmer works on the core components of operating systems or other low-level software, where efficient data management is crucial, and this course is appropriate for anyone wishing to enter this field. The course uses C and C++ for implementation, languages commonly used in system programming. The detailed study of memory management, abstract data types and how programs use memory, as covered in the course, are all relevant to systems programming. The course's focus on the practical implementation of various data structures with code, and analyzing time and space complexity, are of great use to systems programmers.
Research Scientist
A research scientist, especially in computer science, may find this course useful, as it helps build a foundation in data structures and algorithms, which are fundamental in many research problems. Research scientists often encounter situations where they must develop new algorithms or optimize existing ones, and this course's focus on analyzing both code and algorithm performance is relevant. The fact that the course is practical and implementation-based, in C and C++, is also helpful. Although a research scientist may not always need to code in C++, the skills taught by this course are transferable to other languages. This course may be useful, especially if the research involves low-level coding and algorithmic optimization. Typically this role involves an advanced degree such as a PhD.
Robotics Engineer
A robotics engineer designs and develops robots, including the software that controls them, and this course's coverage of data structures and algorithms is relevant. The course's focus on implementation in C and C++, may be useful, as they are used heavily in robotics. Topics such as trees and graphs, which the course explores, have applications in robotic path planning and navigation. The course emphasizes problem solving and analytical skills, which are needed by a robotics engineer. The practical implementations with code, which are part of the course, may also be useful.
Embedded Systems Engineer
An embedded systems engineer designs and develops software for embedded systems, which often requires efficient handling of data. This course may be useful because it will help those who want to enter this field with a deep understanding of data structures and algorithms. The practical coding examples in C and C++, as covered by this course, are commonly used in embedded systems development. The content of this course on memory management, the way programs use different parts of memory, and time and space complexity, will benefit an embedded systems engineer. The detailed study of data structure implementations, also part of this course, are relevant skills for an embedded systems engineer.
Technical Lead
A technical lead oversees a team of developers, and requires a deep understanding of software architecture and system design, and this course's deep dive into data structures and algorithms is a good foundation for this role. The course may help a technical lead in making informed decisions about the most efficient data handling techniques to use in a project. Although this role does not require hands-on coding, as done in this course, a technical lead will benefit from the practical implementation of the data structures and analysis of their performance. The problem solving skills that the course helps in building will be useful for a technical lead.
Game Developer
A game developer uses data structures and algorithms for game logic, character movement, and rendering, and this course's focus on mastering data structures and algorithms may be useful for those entering this role. The course's in-depth coverage of topics, like trees and graphs, are directly applicable in game development for pathfinding and level design. The use of C and C++ in implementations, as taught in this course, helps the work of a game developer. The practical, line-by-line coding approach, also covered in the course, may be useful for a game developer.
Quantitative Analyst
A quantitative analyst, often working in finance, uses algorithms and data structures to develop trading strategies and pricing models and this course's deep dive into algorithms and data structure implementations may be useful for this role. The course, with its emphasis on analyzing algorithms' performance, can help a quantitative analyst. The course's focus on the practical application of data structures and algorithms in C and C++ may also be valuable in the development of complex financial algorithms. A quantitative analyst needs a very solid foundation of data structures and algorithms, which this course will help in building.
Mobile Application Developer
A mobile application developer creates applications for mobile devices, and this course's emphasis on data structures and algorithms may be useful in building efficient mobile applications. The course's coverage includes arrays, lists, stacks and queues, all of which are useful in building data handling systems in mobile apps. The course's focus on C and C++ may be less relevant as mobile development often makes use of other languages, but this course still helps in developing effective problem solving skills. The practical implementation of data structures and analysis of their efficiency, also taught in this course, may be helpful for this role.
Cloud Computing Engineer
A cloud computing engineer manages and develops cloud-based systems, and this course on data structures may be helpful as it may allow for more efficient resource management and data handling in the cloud. The course's exploration of data structures like graphs and trees may be relevant in optimizing network performance in the cloud. While most high-level cloud development does not directly involve implementation of fundamental data structures, this course will help a cloud engineer appreciate their importance in the underlying systems. This course may be useful for optimizing cloud systems.
Database Administrator
A database administrator manages and maintains databases, and this course on data structures may be useful as it helps one understand the principles behind efficient data storage and retrieval. The course explores fundamental data structures such as arrays and linked lists, which underpin how databases are organized. Although this course does not directly teach database skills, the focus on analyzing the efficiency of data structures helps understand how to make database systems more efficient. The practical coding and implementation, taught in this course, will help a database administrator improve the performance of database systems.
Machine Learning Engineer
A machine learning engineer develops and deploys machine learning models, and a basic understanding of data structures may be helpful, but this course is less relevant than other courses. The algorithms that are used in machine learning often make use of data structures. Although this course on data structures and algorithms may not be directly used in machine learning, it develops general skills about how algorithms are implemented and how to analyze their efficiency. This course may help in understanding the underlying techniques used in algorithms, which a machine learning engineer may find helpful. Given the wealth of other material, this course may not be the best use of time, unless the candidate is specifically looking to do very low-level machine learning development.
Data Scientist
A data scientist analyzes large datasets to extract meaningful insights, and this course may be useful in helping one develop the ability to work with unstructured data. The course's focus on data structures such as trees and graphs may be helpful in data modeling. However, it is not a core skill for a data scientist, as the focus is on implementing these structures rather than using them to model data. The course may give an understanding of performance characteristics of certain data structures, which may be useful in designing efficient data analysis algorithms. A data scientist uses numerous tools, and this course may be less helpful than other course material.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Mastering Data Structures & Algorithms using C and C++.
Provides a comprehensive overview of data structures and algorithms using C++. It covers a wide range of topics, including arrays, linked lists, stacks, queues, trees, graphs, and sorting algorithms. It valuable resource for understanding the theoretical concepts and practical implementations of data structures in C++. This book is commonly used as a textbook in universities.
Comprehensive textbook on algorithms, covering a wide range of topics from fundamental data structures to advanced algorithms. While not specific to C++, the concepts are universally applicable. It is particularly useful for understanding the theoretical underpinnings of algorithms and their performance characteristics. This book is commonly used as a textbook in universities.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser