Best Data Structures Courses

Find the best online Data Structures Courses for you. The courses are sorted based on popularity and user ratings. We do not allow paid placements in any of our rankings. We also have a separate page listing only the Free Data Structures Courses.

Java Tutorial for Complete Beginners

Learn to program using the Java programming language

Created by John Purcell - Software Development Trainer


Students: 1617393, Price: Free

Students: 1617393, Price:  Free

Learn to program in the Java programming language. This course assumes no prior programming knowledge, just a desire to learn to program.

Become an Android Developer from Scratch

Simply the best place to start learning Android Development.

Created by Adam Lupu - Learning Scientist & Master Trainer


Students: 561025, Price: Free

Students: 561025, Price:  Free

Do you want to build applications for the most popular operating system in the world?

Do you want the opportunity to put your apps on over 1 billion devices?

"Become An Android Developer From Scratch” is designed to be the best first step to launching your career as an Android Developer. Whether you've never programmed before or are coming to mobile development for the first time, if you're truly inspired to learn Android Development, this is where you need to start.

This course has been in development for over two years, continuously perfected through research and testing in training bootcamps throughout the US. It represents a collaboration between a professional educator with over 20 years of experience in helping people learn and a professional mobile developer who has helped companies like Sony, Verizon, and nVidia build stunning mobile applications.

Starting with how the Java programming language works and progressing all the way to advanced Android concepts, you will get expertly produced instruction, visually descriptive explanations of deep concepts, screencasts that talk you through not just the “how” but also the “why,” and code challenges to test yourself and mark your progress.

Here’s what students are saying:

“Very clean and well done. Covers everything that you need to know for getting started whether you know how to code starting out or not. If you are at a loss trying to start making android apps this is the course for you.”

“I like this course, this would transform any normal person to a full fledged android developer.”

“This one is, by far, the most comprehensive, easy-to-follow, and genuinely well put together one of the bunch.”

“Inspirational! - got me over the hump (complete android beginner)”

Why it’s working...

One of the things we're most excited to offer with this course is access to the inner workings of the mind of a professional mobile developer. Throughout the course you will be able to listen in as our Learning Scientist teases apart all the thoughts that run through a professional mobile developer’s mind as he’s writing the code you will learn to create. It’s like sitting down in a movie with the writer, director, and lead actor. But in this case, it’s all in support of your transformation from novice to professional.

You will build several applications throughout the course, and the starting point for each project (as well as solutions to each challenge) will be available for download. You will also get all the visuals and info-graphics used throughout the course for reference and study.

"Become An Android Developer From Scratch" will give you a new, richer perspective on how mobile devices work. After you’ve completed this rigorous, challenging, and super fun course, you will be able to create your own apps, deploy to the Google Play store, and even interview for a job anywhere in the world.

The real value...

The most important thing you will get from completing this course is the confidence to say “I’m an Android Developer!” You’ll be able to interact with other students and professionals in the Android community with pride and self-assuredness. You’ll also become an independent learner, able to discern where to go for information and how to continue advancing your skills.

No course is going to make you into an expert. It’s up to you to challenge yourself and find your path to making the apps you dream about. Become an Android Developer from Scratch is the best place to begin. Are you ready to get started?

Java Programming Basics

Learn to program! Let's walk through some simple examples and I'll explain everything along the way.

Created by Charles Mulic - Professional Code Monkey


Students: 135830, Price: Free

Students: 135830, Price:  Free

Learn about programming through a series of short, concise examples with line by line explanations covering everything from getting up and running to object oriented programming, data structures, and various tips and tricks to help you along your way.

Section 1 will get you up and running with everything you'll need to write and run Java programs.

Section 2 will introduce fundamental programming concepts such as variables, methods, and control structures that will put you well on your way to writing your own applications.

Section 3 dives a bit deeper as we learn about object oriented programming. You'll learn how to write code that can be reused easily, as well as gain some insight into technical details about how programs actually run on hardware.

Learn Python 3.6 for Total Beginners

From newbie to pro in a day with 7 brain teasing exercises and full solutions provided.

Created by Michael S Russell - Data Analyst - Instructor - Entrepreneur


Students: 117453, Price: Free

Students: 117453, Price:  Free

This course teaches you the fundamentals of any programming language, with Python 3.6 and Anaconda 5.0.0 with Jupyter Notebook!

The course is suitable for those are either completely new to programming, or are coming from another programming language (R, JavaScript, etc) and are keen to get a solid grasp of using Python.

You'll be learning:

  • Installing Jupyter Notebook IDE
  • Using all the vital features of Jupyter Notebook
  • Variables and comparison operators
  • Strings, slicing and formatting
  • Lists, Dictionaries and Tuples
  • Control flow (if, elif, else)
  • Advanced for loops and while loops
  • List comprehension
  • Functions and built-in functions
  • Random module
  • Lambda expressions
  • Handling errors
  • Working with text files

There are a total of 7 exercises between sections 3 to 8 with brain teasing tasks, along with full solutions provided in both lectures and in pdf format.

This course will be updated this month (12/2017) with extra content.

This is a taster of multiple up and coming courses I have in the pipeline, primarily in Python, but also other programming languages which will be released very soon!

P.S. I'd appreciate a 5 star review for this free course as that would help me out a lot to create to more content. If you'd rather give a low review, please do so after completing at least 50% of the course.

Master the Coding Interview: Data Structures + Algorithms

Ultimate coding interview bootcamp. Get more job offers, negotiate a raise: Everything you need to get the job you want!

Created by Andrei Neagoie - Senior Software Developer / Founder of


Students: 110622, Price: $89.99

Students: 110622, Price:  Paid

Updated for 2021 hiring season! Join a live online community of over 400,000+ developers and a course taught by an industry expert that has actually worked both in Silicon Valley and Toronto as a senior developer. Graduates of this course are now working at Google, Tesla, Amazon, Apple, IBM, JP Morgan, Facebook + other top tech companies.

Want to land a job at a great tech company like Google, Microsoft, Facebook, Netflix, Amazon, or other companies but you are intimidated by the interview process and the coding questions? Do you find yourself feeling like you get "stuck" every time you get asked a coding question? This course is your answer. Using the strategies, lessons, and exercises in this course, you will learn how to land offers from all sorts of companies.

Many developers who are "self taught", feel that one of the main disadvantages they face compared to college educated graduates in computer science is the fact that they don't have knowledge about algorithms, data structures and the notorious Big-O Notation. Get on the same level as someone with computer science degree by learning the fundamental building blocks of computer science which will give you a big boost during interviews. You will also get access to our private online chat community with thousands of developers online to help you get through the course.

Here is what you will learn in this course:


1. Big O notation

2. Data structures:

* Arrays
* Hash Tables
* Singly Linked Lists
* Doubly Linked Lists
* Queues
* Stacks
* Trees (BST, AVL Trees, Red Black Trees, Binary Heaps)
* Tries
* Graphs

3. Algorithms:

* Recursion
* Sorting
* Searching
* Tree Traversal
* Breadth First Search
* Depth First Search
* Dynamic Programming

Non Technical:

- How to get more interviews
- What to do during interviews
- What do do after the interview
- How to answer interview questions
- How to handle offers
- How to negotiate your salary
- How to get a raise

Unlike most instructors, I am not a marketer or a salesperson. I am a senior developer and programmer who has worked and managed teams of engineers and have been in these interviews both as an interviewee as well as the interviewer.

My job as an instructor will be successful if I am able to help you become better at interviewing and land more jobs. This one skill can really change the course of your career and I hope you sign up today to see what it can do for your career!

Taught by:

Andrei is the instructor of the highest rated Web Development course on Udemy as well as one of the fastest growing. His graduates have moved on to work for some of the biggest tech companies around the world like Apple, Google, JP Morgan, IBM, etc... He has been working as a senior software developer in Silicon Valley and Toronto for many years, and is now taking all that he has learned, to teach programming skills and to help you discover the amazing career opportunities that being a developer allows in life. 

Having been a self taught programmer, he understands that there is an overwhelming number of online courses, tutorials and books that are overly verbose and inadequate at teaching proper skills. Most people feel paralyzed and don't know where to start when learning a complex subject matter, or even worse, most people don't have $20,000 to spend on a coding bootcamp. Programming skills should be affordable and open to all. An education material should teach real life skills that are current and they should not waste a student's valuable time.   Having learned important lessons from working for Fortune 500 companies, tech startups, to even founding his own business, he is now dedicating 100% of his time to teaching others valuable software development skills in order to take control of their life and work in an exciting industry with infinite possibilities. 

Andrei promises you that there are no other courses out there as comprehensive and as well explained. He believes that in order to learn anything of value, you need to start with the foundation and develop the roots of the tree. Only from there will you be able to learn concepts and specific skills(leaves) that connect to the foundation. Learning becomes exponential when structured in this way. 

Taking his experience in educational psychology and coding, Andrei's courses will take you on an understanding of complex subjects that you never thought would be possible.  

See you inside the courses!

Introduction to Algorithms and Data structures in C++

A step-by-step guide with solved problems. I'm teaching visually with lots of examples.

Created by Andrei Margeloiu - Google HashCode World finalist, 3x Gold medalist


Students: 99652, Price: Free

Students: 99652, Price:  Free

***Big update - Dynamic programming***

  • Fibonacci sequence
  • Dynamic programming
  • How to spot recurrence relations?
  • 0/1 Knapsack problem
  • Stack
  • Check parenthesis expression
  • Queue

"I learned a lot of things from this course. The GOLD trick was awesome." Arpan P.

"I started thinking about problems in a more efficient way..." Mokshagna S.

"It's deep, rich in information, consistent and dense" Laurentiu M.

"It's a very good course, it focuses on building your concept." Saransh S.

"Awesome, it's just awesome" Yazan R.

I'm a competitive programmer, World Finalist in Google HashCode algorithmic challenge, and a 3x Gold Medalist in the Computing Olympiad C/C++. You will learn fundamentals Algorithms & Data structures fast and the knowledge will resist because I teach you using visual examples.

You will get my advice every time you need it! Just message me.

If you know the basics of C++, this course suits you perfectly !

I've designed this course to take you down a guided learning path. You will find some GOLD tricks sprinkled throughout the course that will help you become an algorithmic ninja!

What can you take from me ?

I have spent 5 years of my life learning this topic by myself. You have the possibility to take my knowledge for granted! I'm teaching in the way I learnt: with illustration and examples.

My Promise to You

Algorithms and Data structures brought me success and immense satisfaction. I created this course to share my knowledge with you because I love this topic and I promise to teach you with enthusiasm! If you need support, I will be just a message away.

My Approach

Practice, practice and more practice. After each lecture, I will guide you to solve little problems! The most important thing you can obtain from this course is to think like a problem solver!

Easy to Advanced Data Structures

A complete guide to learning everything there is to know about data structures

Created by William Fiset - Google engineer; ACM-ICPC world finalist


Students: 88285, Price: $89.99

Students: 88285, Price:  Paid

Data structures are amongst the most fundamental ingredients in the recipe for creating efficient algorithms and good software design. Knowledge of how to create and design good data structures is an essential skill required in becoming an exemplary programmer. This course will teach you how to master the fundamental ideas surrounding data structures.

Learn and master the most common data structures in this comprehensive course:

  • Static and dynamic arrays

  • Singly and doubly linked lists

  • Stacks

  • Queues

  • Heaps/Priority Queues

  • Binary Trees/Binary Search Trees

  • Union find/Disjoint Set

  • Hash tables

  • Fenwick trees

  • AVL trees

  • Binary Indexed trees

  • Sparse tables

Course contents

This course provides you with high quality animated videos explaining a multitude of data structures and how they are represented visually. You will learn how to code various data structures together with simple to follow step-by-step instructions. Every data structure presented will be accompanied by some working source code (in Java) to solidify your understanding of that particular data structure. I will also be posting various coding exercises and multiple choice questions to ensure that you get some hands on experience.

JavaScript Algorithms and Data Structures Masterclass

The Missing Computer Science and Coding Interview Bootcamp

Created by Colt Steele - Developer and Bootcamp Instructor


Students: 85352, Price: $89.99

Students: 85352, Price:  Paid

Updated in November 2018 with brand new section on Dynamic Programming!

This course crams months of computer science and interview prep material into 20 hours of video. The content is based directly on last semester of my in-person coding bootcamps, where my students go on to land 6-figure developer jobs. I cover the exact same computer science content that has helped my students ace interviews at huge companies like Google, Tesla, Amazon, and Facebook. Nothing is watered down for an online audience; this is the real deal :)   We start with the basics and then eventually cover “advanced topics” that similar courses shy away from like Heaps, Graphs, and Dijkstra’s Shortest Path Algorithm

I start by teaching you how to analyze your code’s time and space complexity using Big O notation.  We cover the ins and outs of Recursion.  We learn a 5-step approach to solving any difficult coding problem. We cover common programming patterns. We implement popular searching algorithms. We write 6 different sorting algorithms: Bubble, Selection, Insertion, Quick, Merge, and Radix Sort.   Then, we switch gears and implement our own data structures from scratch, including linked lists, trees, heaps, hash tables, and graphs.  We learn to traverse trees and graphs, and cover Dijkstra's Shortest Path Algorithm.  The course also includes an entire section devoted to Dynamic Programming.

Here's why this course is worth your time:

  • It's interactive -  I give you a chance to try every problem before I show you my solution.

  • Every single problem has a complete solution walkthrough video as well as accompanying solution file.

  • I cover helpful "tips and tricks" to solve common problems, but we also focus on building an approach to ANY problem.

  • It's full of animations and beautiful diagrams!

Are you looking to level-up your developer skills? Sign up today!

The Coding Interview Bootcamp: Algorithms + Data Structures

Ace your next Javascript coding interview by mastering data structures and algorithms.

Created by Stephen Grider - Engineering Architect


Students: 79343, Price: $89.99

Students: 79343, Price:  Paid

Data Structures? They're here.  Algorithms?  Covered.  Lots of questions with well-explained solutions?  Yep!

If you're nervous about your first coding interview, or anxious about applying to your next job, this is the course for you.  I got tired of interviewers asking tricky questions that can only be answered if you've seen the problem before, so I made this course!  This video course will teach you the most common interview questions that you'll see in a coding interview, giving you the tools you need to ace your next whiteboard interview.

Coding interviews are notoriously intimidating, but there is one method to become a better interviewer - and that is practice!  Practicing dozens of interview questions is what makes the difference between a job offer for a $120k USD and another rejection email.  This course is going to not only give you dozens of questions to practice on, but it will also make sure you understand the tricks behind solving each question, so you’ll be able to perform in a real interview.

I have spent many hours combing through interview questions asked at Google, Facebook, and Amazon to make sure you know how to answer questions asked by the most well-paying companies out there.  No stone is left unturned, as we discuss everything from the simplest questions all the way to the most complex algorithm questions.

In this course, you'll get:

  • Clear, well-diagramed explanations for every single problem to make sure you understand the solution
  • An overview of the most important data structures to know about.  These are presented for people without a CS degree.
  • A huge collection of common algorithm questions, including everything from 'reversing a string' to 'determine the width of a BST'
  • Sensible strategies for tackling systems design problems
  • Insider tips on answering what interviewers area really looking for
  • Constant support on the Udemy Q&A forums from me!

My goal in this course is to help you defeat those interviewers who ask nasty algorithm questions.  Sign up today, and be the cutting edge engineer who will be prepared to get a high paying job

Mastering Data Structures & Algorithms using C and C++

Learn, Analyse and Implement Data Structure using C and C++. Learn Recursion and Sorting.

Created by Abdul Bari - Professional Programmer and Educator


Students: 68379, Price: $99.99

Students: 68379, Price:  Paid

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

Data Structure and Algorithms Analysis – Job Interview

Write code run faster, use less memory and prepare for Software Engineer Interview with real interview questions

Created by Dr. Hussein Alrubaye - Senior Software Engineer


Students: 65966, Price: $19.99

Students: 65966, Price:  Paid

This course prepared depending on my real Software Engineer job interviews experiences with Google, Microsoft, Amazon, and Snapchat.

In this course you will learn how to Analysis algorithms like Sorting, Searching,  and Graph algorithms. And how to reduce the code complexity from one Big-O  level to another level. Furthermore, you will learn different type of Data Structure for your code. Also you will learn how to find Big-O for every data structure, and how to apply  correct Data Structure to your problem in Java. By the end you will be able to write code that run faster and use low memory. You Also will learn  how to analysis problems using Dynamic programming. 

We will discus code complexity in Different algorithms like Sorting algorithms ( Bubble, Merge, Heap, and quick sort) , searching algorithms ( Binary search, linear search, and Interpolation), Graph algorithms( Binary tree, DFS, BFS, Nearest Neighbor and Shortest path, Dijkstra's Algorithm, and A* Algorithm). and Data Structure like Dynamic Array, Linked List, Stack, Queue, and Hash-Table

Python for Data Structures, Algorithms, and Interviews!

Get a kick start on your career and ace your coding interviews!

Created by Jose Portilla - Head of Data Science, Pierian Data Inc.


Students: 65464, Price: $109.99

Students: 65464, Price:  Paid


Welcome to Python for Data Structures, Algorithms and Interviews!

This is the most comprehensive course online to help you ace your coding interviews and learn about Data Structures and Algorithms! This course takes advantage of the easy to read Python programming language to efficiently teach you what you need to know to land the tech job of your dreams!

This course will teach you everything you need to know to get a great job in the software technology field, including:

  • Creating a great resume
  • Creating LinkedIn and GitHub profiles for recruiters to find
  • Building and leveraging a network for job opportunities
  • The latest job searching tools available online
  • Non-Technical Interview Questions and Answers
  • Post-Interview topics (Salary Negotiation and References Preparation)
  • Jupyter Notebooks Overview
  • Algorithm Analysis and Big-O Notation
  • Array Sequences
  • Stacks Queues and Deques
  • Linked Lists
  • Recursion
  • Trees
  • Searching and Sorting Algorithms
  • Graph Algorithms
  • Riddles and Brainteasers
  • 4 Mock Interviews!

Achieve your career goals and get a fantastic job in technology by enrolling in this course!

Data Structures and Algorithms: Deep Dive Using Java

Learn about Arrays, Linked Lists, Trees, Hashtables, Stacks, Queues, Heaps, Sort algorithms and Search algorithms

Created by Tim Buchalka - Java Python Android and C# Expert Developer - 987K+ students


Students: 56731, Price: $99.99

Students: 56731, Price:  Paid

So you've worked with the basics of data structures and algorithms in Java (or another OO programming language) but feel like you need a deeper knowledge of how things work.

Maybe you have taken other courses on this topic that focus more on teaching how to pass job interview tests (theory) instead of how to make good choices for the programs you develop (implementation).

Or maybe you are ready to move from a junior programming position to a more senior one and need to get skilled in advanced concepts like data structures, and how to apply them to your own projects.

Whatever the reason, if you are looking for a course that focus on the implementations to give you a complete understanding of how things work, then this is the course for you.

This course goes over the theory of how things work, but only to give you what you need to know to understand the implementation covered. 

Complete source code is included and available for you to download.

This is a hands-on course!  If you want to try understand things at a deep level, and work on implementations, rather than theory, then again, this is the course for you.

Topics covered:-

Linked Lists
Sort algorithms
Search algorithms

The course also spends more time than most other courses of its kind looking at what’s available in the JDK. Students wanting to understand how things work "under the hood" will benefit enormously from this course.

Why learn about data structures and algorithms?

The reality is, the more you learn about data structures and algorithms, the better a programmer you become.


Because, data structures and algorithms are effectively patterns for solving problems.   You want to add as many of them as you can to your skill-set.  By doing so, you will find you solve more problems, and use the right tools for the job, in a more elegant way.  And you will learn a heap of them in this course.

Why enrolling in this course is the best decision you can make.

Your instructor, Sarah Ettritch has over 25 years’ software development experience and has been working with Java since JDK 1.1.  She has spent many years creating tools used by developers, which required a deep knowledge of data structures and algorithms, and is perfectly qualified to teach this course.

Most courses focus on giving you the theory of how things work, so that you can take an interview.  Whilst the theory is important, the knowledge of how to implement these data structures and algorithms are of vital importance.

This course goes over the theory of how things work, but only to give you what you need to know to understand the implementation covered.   The main focus of the course is to give you a real understanding of how things work under the hood, so that you can apply this to future programming projects.

If you want to actually understand how things work, and be able to take that understanding and apply it to your own programs, then this course is for you.

After completing this course, you will have a solid understanding of data structures and algorithms (both the theory, and the implementation).

The sooner you sign up for this course, the sooner you will have the skills and knowledge you need to increase your job or consulting opportunities.    Java developers with key skills and understanding of data structures and algorithms are in high demand and get paid extremely well.

If you are ready for that new job promotion or consulting opportunity, it's time to get started.

Why not get started today?

 Click the Signup button to sign up for the course

Learn Python – Python Programming For Beginners From Scratch

Python is a highly paid programming language and is great for beginners. Learn Python from scratch with free exercises.

Created by Ian Annase - Software Engineer


Students: 48213, Price: Free

Students: 48213, Price:  Free

Are you interested in learning Python?

Python is the future of software development. This high-level programming language is commonly regarded as the best programming language to learn for beginners.  And now you can learn it all from the comfort of your home.. in your own time.. without having to attend class. 

Learning Python will give you more opportunities for jobs and career advancement because Python is one of the most requested skills today.

5-Star Testimonials

I know this that this is a beginner's course. The instructor has a calm and patient voice. It appears that he wants you to learn how to do it. 5 stars earned! I am glad that I took the first step!

Extremely good instructor. His pace is very normal and his explanation is really great. When he was explaining the concepts, Python looked really simple for me, even though this was the first overview i had.

Yes, the videos are very easy to follow and understand.

Why learn Python?

  • It's fun and easy to learn

  • High salaries

  • Python is used for many kinds of development

  • Python is the future of AI and Machine Learning.

  • Diversity and flexibility

  • And many more

Who is this for?

This course is for anyone who wants to take their skills to the next level. Python is a programming language that many believe to be the future of software development. No previous programming experience required. This course is also a great reference for those who are experienced with Python.

This course comes with a 30 day money back guarantee! If you are not satisfied in any way, you'll get your money back.

Python Programming Bootcamp (2019)

Introductory Course on Programming with Python

Created by Bordeianu Adrian - Developper


Students: 39563, Price: Free

Students: 39563, Price:  Free

Become a Python Programmer and learn one of employer's most requested skills of 2019! 

This course assumes no previous programming or Python experience. If  you’ve never programmed a computer before, or if you know another  programming language and want to learn Python, this course will teach  you how.

The goal of the course is to introduce students to Python Version 3.x programming.

Here is what you will get and learn by taking this Python Programming Bootcamp (2019)  course:

  • How to work with various data types.

  • What variables are and when to use them.

  • The importance of white space in Python.

  • Other.

Data Structures Concepts & Singly Linked List Implementation

Data Structures Concepts & Singly Linked List Implementation

Created by Chaand Sheikh - Best seller Instructor, Teaches more than 1,50,000+ students


Students: 33942, Price: Free

Students: 33942, Price:  Free

Data structure is a particular way of storing and organizing information in a computer so that it can be retrieved and used most productively.

Different kinds of data structures are meant for different kinds of applications, and some are highly specialized to specific tasks.

Data structures are important for the following reasons:

1. Data structures are used in almost every program or software system.

2. Specific data structures are essential ingredients of many efficient algorithms, and make possible the management of huge amounts of data, such as a large integrated collection of databases.

3. Some programming languages emphasize data structures, rather than algorithms, as the key organizing factor in software design.


The course aims to teach basic data structures in computer programming. The data structures taught in the course will include Stack, Queue, and Linked List using the C programming language. The primary goal is to make students visualize how different data structures work. You should take this course if you have just learned to program and want to learn how different data structures work. This course will give you enough conceptual knowledge to help you proceed with the implementation of data structures yourselves.

Course Topics

  1. Stack

  2. Queue

  3. Linked List

No question asked - Money Back Guarantee!

There is no risk, this course comes with a 30-day money-back guarantee. Once you purchase the course, if for any reason you are not satisfied with the course, please let us know, we will refund 100%, no questions asked. So you have nothing to lose, sign up for this course, and learn “Data Structures Concepts & Singly Linked List Implementation”!

Data Structures in Java for Noobs (Lite Edition)

Data Structures Made Simple With Step by Step Instructions and Diagrams

Created by Pedro Mercado - Programmer


Students: 31183, Price: Free

Students: 31183, Price:  Free

This course will introduce you to the following data structures

  • Singly Linked List
  • Doubly Linked List

So why even bother learning data structures? I know everybody wants to build the latest and greatest app or build a website so why data structures? I'll give you two reason why you need to know data structures.

1) They are often common interview questions regardless of what programming field you are going to enter.
2) If you understand the implementations behind the scenes you will make more informed decisions the next time your programming on which underlying data structure will give you the best result.

Practical Data Structures & Algorithms in Java + HW

Go from zero to hero in the most important algorithms and data structures using Java

Created by Imtiaz Ahmad - Senior Software Engineer & Trainer @ Job Ready Programmer


Students: 25157, Price: $99.99

Students: 25157, Price:  Paid

LAST UPDATED: November 2020

If I had to pick the single most important topic in software development, it would be data structures and algorithms. Think of it as the fundamental tools available to every computer programmer. The better you get with these tools the more confident a programmer you’ll become. Software development is a vast field requiring all kinds of skill-sets but getting good at this single topic is a huge leap forward in your programming journey and it’ll certainly pave the way for a successful programming career.

The topics in this course are going to cover data structures such as lists, stacks, queues, trees and some of the most powerful sorting, searching, and graph algorithms that have revolutionized the field of computing. Throughout the course I keep things practical and provide real life examples of how all of these algorithms work and when & where they can be applied to write efficient computer programs.

I’ll be moving at a slow and steady pace introducing each topic followed by a PRACTICAL programming assignment so you can immediately apply what you learned. All homework assignments in the course will be accompanied with step by step solution videos demystifying each problem as I code up the solutions. My goal is to make sure, that after you complete this course you feel completely confident going into a coding interview because you will have built a solid foundation in computer programming. So go ahead and signup and I’ll see you in the course.

Complexity Theory Basics

Asymptotic complexity, complexity theory, running times, complexity classes

Created by Holczer Balazs - Software Engineer


Students: 24197, Price: Free

Students: 24197, Price:  Free

This course is about algorithms running times and complexity theory. In order to be able to classify algorithms we have to define limiting behaviors for functions describing the given algorithm. Thats why big O, big theta and big omega came to be. We are going to talk about the theory behind complexity theory as well as we are going to see some concrete examples. Then we will consider complexity classes including P as well as NP. These concepts are fundamental if we want to have a good grasp on data structures and graph algorithms, so these topics are definitely worth considering. Hope you will like it!

Google Sheets: Pivot Tables + Data Insights For Beginners!

Learn to explore data & uncover insights with Google Sheets pivot tables! Course taught by fmr Google Analytical Lead.

Created by Brian Moore - data analytics to inform business decisions


Students: 20799, Price: Free

Students: 20799, Price:  Free

  • Do you have data in Google Sheets and not sure how to make it useful? Then this course is for you!

  • Do you want to get on the path to being Data-Savvy? Then this course is for you!

  • Do you want to grow your Google Sheets data skills? Then this course is for you!

This course has been *designed by a former Google Analytical Lead* so that you can get comfortable going from rows and columns of data in a Google Sheet to useful insights via pivot tables.

This course includes numerous hands-on examples and practice exercises that will get you feeling data-savvy.

As a bonus, practice exercises and lecture examples are included in a spreadsheet that you can keep as part of the course.

This course is broken out into 8 key sections:

  • Section 1: Introduction (what are pivot tables and how they are used in the real-world to surface data insights)

  • Section 2: An Overview of the Data Insights Pivot Table Process

  • Section 3: Applying the Data Insights Pivot Table Process

  • Section 4: Practice Exercises: Set 1 (Titanic Dataset)

  • Section 5: Solution Videos for Practice Exercises: Set 1 (Titanic Dataset)

  • Section 6: Practice Exercises: Set 2 (Red Wine Dataset)

  • Section 7: Solution Videos for Practice Exercises: Set 2 (Red Wine Dataset)

  • Section 8: Course Wrap + Bonus Content

The content has intentionally been curated for practitioners who want to apply learnings right away.

This is NOT a long drawn out course that goes deep in the weeds on academic theory.

Make the transition from decisions based on gut feel to data informed decision making!

Use this efficiently designed course to level up your data skills. Get started today! 


Introduction to Data Structures & Algorithms in Java

Designed to help understand the fundamentals of DS & Algorithms really well. A must have for programming interviews.

Created by Raghavendra Dixit - Dizauvi Learning Solutions


Students: 20594, Price: $64.99

Students: 20594, Price:  Paid

This course introduces some basic data structures (arrays, linked lists, stacks, queues, trees and heaps) and algorithms (various sorting algorithms, and algorithms for operations on binary search trees and heaps). We will also cover recursion in this course. Use of graphics and animations makes the lectures very easy to understand and digest. After taking this course, you will loose your fear for data structures and algorithms.

Algorithms and Data Structures in Python (INTERVIEW Q&A)

A guide to implement data structures, graph algorithms and sorting algorithms from scratch with interview questions!

Created by Holczer Balazs - Software Engineer


Students: 20563, Price: $89.99

Students: 20563, Price:  Paid

This course is about data structures, algorithms and graphs. We are going to implement the problems in Python programming language. I highly recommend typing out these data structures and algorithms several times on your own in order to get a good grasp of it.

So what are you going to learn in this course?

Section 1:

  • setting up the environment

  • differences between data structures and abstract data types

Section 2 - Arrays:

  • what is an array data structure

  • arrays related interview questions

Section 3 - Linked Lists:

  • linked list data structure and its implementation

  • doubly linked lists

  • linked lists related interview questions

Section 4 - Stacks and Queues:

  • stacks and queues

  • stack memory and heap memory

  • how the stack memory works exactly?

  • stacks and queues related interview questions

Section 5 - Binary Search Trees:

  • what are binary search trees

  • practical applications of binary search trees

  • problems with binary trees

Section 6 - Balanced Binary Trees (AVL Trees and Red-Black Trees):

  • why to use balanced binary search trees

  • AVL trees

  • red-black trees

Section 7 - Priority Queues and Heaps:

  • what are priority queues

  • what are heaps

  • heapsort algorithm overview

Section 8 - Hashing and Dictionaries:

  • associative arrays and dictionaries

  • how to achieve O(1) constant running time with hashing

Section 9 - Graph Traversal:

  • basic graph algorithms

  • breadth-first

  • depth-first search

  • stack memory visualization for DFS

Section 10 - Shortest Path problems (Dijkstra's and Bellman-Ford Algorithms):

  • shortest path algorithms

  • Dijkstra's algorithm

  • Bellman-Ford algorithm

  • how to detect arbitrage opportunities on the FOREX?

Section 11 - Spanning Trees (Kruskal's and Prim's Approaches):

  • what are spanning trees

  • what is the union-find data structure and how to use it

  • Kruskal's algorithm theory and implementation as well

  • Prim's algorithm

Section 12 - Sorting Algorithms

  • sorting algorithms

  • bubble sort, selection sort and insertion sort

  • quicksort and merge sort

  • non-comparison based sorting algorithms

  • counting sort and radix sort

In the first part of the course we are going to learn about basic data structures such as linked lists, stacks, queues, binary search trees, heaps and some advanced ones such as AVL trees and red-black trees.. The second part will be about graph algorithms such as spanning trees, shortest path algorithms and graph traversing. We will try to optimize each data structure as much as possible.

In each chapter I am going to talk about the theoretical background of each algorithm or data structure, then we are going to write the code step by step in Python.

Most of the advanced algorithms relies heavily on these topics so it is definitely worth understanding the basics. These principles can be used in several fields: in investment banking, artificial intelligence or electronic trading algorithms on the stock market. Research institutes use Python as a programming language in the main: there are a lot of library available for the public from machine learning to complex networks.

Thanks for joining the course, let's get started!

Data Structures in C++

For Beginners

Created by Pedro Mercado - Programmer


Students: 19898, Price: Free

Students: 19898, Price:  Free

In this course, we're going to be learning about data structures using C++. We're going to be covering with Linked List and Doubly Linked list data structures. Afterwards we will be covering Abstract Data Types.  An Abstract Data Type describes what is expected from a data structure. For example a Stack must have a push and pop method. So we will be covering the following Abstract Data Types, such as a Stack,Queue,Binary Search Tree, Min/Max Heap.

Bootcamp for KNIME Analytics Platform

For users new to KNIME and data science, or experienced users of other data science tools.

Created by KNIME Inc - Data Science and Evangelism


Students: 19142, Price: Free

Students: 19142, Price:  Free

If you've never used KNIME Analytics Platform before, this is the course for you. You can use KNIME Analytics Platform to create visual workflows with an intuitive, drag and drop style graphical interface, without the need for coding.

We'll start with installation and setup of the software, and present detailed materials on its features. We'll move on to some practical application of data blending from different sources, and use real datasets to show you all the different way you can transform, clean, and aggregate information. Finally, we'll introduce some machine learning algorithms for classification, and show you how to build your own models.

More than 50 videos are provided, along with some exercises for you to work on independently. By the end of the course, we want you to feel comfortable with the interface of KNIME Analytics Platform, be able to perform common processing tasks with your own data, and start putting predictive analytics into practice.

The Complete Data Structures and Algorithms Course in Python

Data Structures and Algorithms from Zero to Hero and Crack Top Companies 100+ Interview questions (Python Coding)

Created by Elshad Karimov - Software Developer and Lead Instructor


Students: 18878, Price: $89.99

Students: 18878, Price:  Paid

Welcome to the Complete Data Structures and Algorithms in Python Bootcamp, the most modern, and the most complete Data Structures and Algorithms in Python course on the internet.

At 40+ hours, this is the most comprehensive course online to help you ace your coding interviews and learn about Data Structures and Algorithms in Python. You will see 100+ Interview Questions done at the top technology companies such as Apple,Amazon, Google and Microsoft and how to face Interviews with comprehensive visual explanatory video materials which will bring you closer towards landing the tech job of your dreams!

Learning Python is one of the fastest ways to improve your career prospects as it is one of the most in demand tech skills! This course will help you in better understanding every detail of Data Structures and how algorithms are implemented in high level programming language.

We'll take you step-by-step through engaging video tutorials and teach you everything you need to succeed as a professional programmer.

After finishing this course, you will be able to:

Learn basic algorithmic techniques such as greedy algorithms, binary search, sorting and dynamic programming to solve programming challenges.

Learn the strengths and weaknesses of a variety of data structures, so you can choose the best data structure for your data and applications

Learn many of the algorithms commonly used to sort data, so your applications will perform efficiently when sorting large datasets

Learn how to apply graph and string algorithms to solve real-world challenges: finding shortest paths on huge maps and assembling genomes from millions of pieces.

Why this course is so special and different from any other resource available online?

This course will take you from very beginning to a very complex and advanced topics in understanding Data Structures and Algorithms!

You will get video lectures explaining concepts clearly with comprehensive visual explanations throughout the course.

You will also see Interview Questions done at the top technology companies such as Apple,Amazon, Google and Microsoft.

I cover everything you need to know about technical interview process!

So whether you are interested in learning the top programming language in the world in-depth

And interested in learning the fundamental Algorithms, Data Structures and performance analysis that make up the core foundational skillset of every accomplished programmer/designer or software architect and is excited to ace your next technical interview this is the course for you!

And this is what you get by signing up today:

Lifetime access to 40+ hours of HD quality videos. No monthly subscription. Learn at your own pace, whenever you want

Friendly and fast support in the course Q&A whenever you have questions or get stuck

FULL money back guarantee for 30 days!

Who is this course for?

Self-taught programmers who have a basic knowledge in Python and want to be professional in Data Structures and Algorithms and begin interviewing in tech positions!

As well as students currently studying computer science and want supplementary material on Data Structures and Algorithms and interview preparation for after graduation!

As well as professional programmers who need practice for upcoming coding interviews.

And finally anybody interested in learning more about data structures and algorithms or the technical interview process!

This course is designed to help you to achieve your career goals. Whether you are looking to get more into Data Structures and Algorithms , increase your earning potential or just want a job with more freedom, this is the right course for you!

The topics that are covered in this course.

Section 1 - Introduction

  • What are Data Structures?

  • What is an algorithm?

  • Why are Data Structures and Algorithms important?

  • Types of Data Structures

  • Types of Algorithms

Section 2 - Recursion

  • What is Recursion?

  • Why do we need recursion?

  • How Recursion works?

  • Recursive vs Iterative Solutions

  • When to use/avoid Recursion?

  • How to write Recursion in 3 steps?

  • How to find Fibonacci numbers using Recursion?

Section 3 - Cracking Recursion Interview Questions

  • Question 1 - Sum of Digits

  • Question 2 - Power

  • Question 3 - Greatest Common Divisor

  • Question 4 - Decimal To Binary

Section 4 - Bonus CHALLENGING Recursion Problems (Exercises)

  • power

  • factorial

  • productofArray

  • recursiveRange

  • fib

  • reverse

  • isPalindrome

  • someRecursive

  • flatten

  • captalizeFirst

  • nestedEvenSum

  • capitalizeWords

  • stringifyNumbers

  • collectStrings

Section 5 - Big O Notation

  • Analogy and Time Complexity

  • Big O, Big Theta and Big Omega

  • Time complexity examples

  • Space Complexity

  • Drop the Constants and the non dominant terms

  • Add vs Multiply

  • How to measure the codes using Big O?

  • How to find time complexity for Recursive calls?

  • How to measure Recursive Algorithms that make multiple calls?

Section 6 - Top 10 Big O Interview Questions (Amazon, Facebook, Apple and Microsoft)

  • Product and Sum

  • Print Pairs

  • Print Unordered Pairs

  • Print Unordered Pairs 2 Arrays

  • Print Unordered Pairs 2 Arrays 100000 Units

  • Reverse

  • O(N)  Equivalents

  • Factorial Complexity

  • Fibonacci Complexity

  • Powers of 2

Section 7 - Arrays

  • What is an Array?

  • Types of Array

  • Arrays in Memory

  • Create an Array

  • Insertion Operation

  • Traversal Operation

  • Accessing an element of Array

  • Searching for an element in Array

  • Deleting an element from Array

  • Time and Space complexity of One Dimensional Array

  • One Dimensional Array Practice

  • Create Two Dimensional Array

  • Insertion - Two Dimensional Array

  • Accessing an element of Two Dimensional Array

  • Traversal - Two Dimensional Array

  • Searching for an element in Two Dimensional Array

  • Deletion - Two Dimensional Array

  • Time and Space complexity of Two Dimensional Array

  • When to use/avoid array

Section 8 - Python Lists

  • What is a List? How to create it?

  • Accessing/Traversing a list

  • Update/Insert a List

  • Slice/ from a List

  • Searching for an element in a List

  • List Operations/Functions

  • Lists and strings

  • Common List pitfalls and ways to avoid them

  • Lists vs Arrays

  • Time and Space Complexity of List

  • List Interview Questions

Section 9 - Cracking Array/List Interview Questions (Amazon, Facebook, Apple and Microsoft)

  • Question 1 - Missing Number

  • Question 2 - Pairs

  • Question 3 - Finding a number in an Array

  • Question 4 - Max product of two int

  • Question 5 - Is Unique

  • Question 6 - Permutation

  • Question 7 - Rotate Matrix

Section 10 - CHALLENGING Array/List Problems (Exercises)

  • Middle Function

  • 2D Lists

  • Best Score

  • Missing Number

  • Duplicate Number

  • Pairs

Section 11 - Dictionaries

  • What is a Dictionary?

  • Create a Dictionary

  • Dictionaries in memory

  • Insert /Update an element in a Dictionary

  • Traverse through a Dictionary

  • Search for an element in a Dictionary

  • Delete / Remove an element from a Dictionary

  • Dictionary Methods

  • Dictionary operations/ built in functions

  • Dictionary vs List

  • Time and Space Complexity of a Dictionary

  • Dictionary Interview Questions

Section 12 - Tuples

  • What is a Tuple? How to create it?

  • Tuples in Memory / Accessing an element of Tuple

  • Traversing a Tuple

  • Search for an element in Tuple

  • Tuple Operations/Functions

  • Tuple vs List

  • Time and Space complexity of Tuples

  • Tuple Questions

Section 13 - Linked List

  • What is a Linked List?

  • Linked List vs Arrays

  • Types of Linked List

  • Linked List in the Memory

  • Creation of Singly Linked List

  • Insertion in Singly Linked List in Memory

  • Insertion in Singly Linked List Algorithm

  • Insertion Method in Singly Linked List

  • Traversal of Singly Linked List

  • Search for a value in Single Linked List

  • Deletion of node from Singly Linked List

  • Deletion Method in Singly Linked List

  • Deletion of entire Singly Linked List

  • Time and Space Complexity of Singly Linked List

Section 14 - Circular Singly Linked List

  • Creation of Circular Singly Linked List

  • Insertion in Circular Singly Linked List

  • Insertion Algorithm in Circular Singly Linked List

  • Insertion method in Circular Singly Linked List

  • Traversal of Circular Singly Linked List

  • Searching a node in Circular Singly Linked List

  • Deletion of a node from Circular Singly Linked List

  • Deletion Algorithm in Circular Singly Linked List

  • Method in Circular Singly Linked List

  • Deletion of entire Circular Singly Linked List

  • Time and Space Complexity of Circular Singly Linked List

Section 15 - Doubly Linked List

  • Creation of Doubly Linked List

  • Insertion in Doubly Linked List

  • Insertion Algorithm in Doubly Linked List

  • Insertion Method in Doubly Linked List

  • Traversal of Doubly Linked List

  • Reverse Traversal of Doubly Linked List

  • Searching for a node in Doubly Linked List

  • Deletion of a node in Doubly Linked List

  • Deletion Algorithm in Doubly Linked List

  • Deletion Method in Doubly Linked List

  • Deletion of entire Doubly Linked List

  • Time and Space Complexity of Doubly Linked List

Section 16 - Circular Doubly Linked List

  • Creation of Circular Doubly Linked List

  • Insertion in Circular Doubly Linked List

  • Insertion Algorithm in Circular Doubly Linked List

  • Insertion Method in Circular Doubly Linked List

  • Traversal of Circular Doubly Linked List

  • Reverse Traversal of Circular Doubly Linked List

  • Search for a node in Circular Doubly Linked List

  • Delete a node from Circular Doubly Linked List

  • Deletion Algorithm in Circular Doubly Linked List

  • Deletion Method in Circular Doubly Linked List

  • Entire Circular Doubly Linked List

  • Time and Space Complexity of Circular Doubly Linked List

  • Time Complexity of Linked List vs Arrays

Section 17 - Cracking Linked List Interview Questions (Amazon, Facebook, Apple and Microsoft)

  • Linked List Class

  • Question 1 - Remove Dups

  • Question 2 - Return Kth to Last

  • Question 3 - Partition

  • Question 4 - Sum Linked Lists

  • Question 5 - Intersection

Section 18 - Stack

  • What is a Stack?

  • Stack Operations

  • Create Stack using List without size limit

  • Operations on Stack using List (push, pop, peek, isEmpty, )

  • Create Stack with limit (pop, push, peek, isFull, isEmpty, )

  • Create Stack using Linked List

  • Operation on Stack using Linked List (pop, push, peek, isEmpty, )

  • Time and Space Complexity of Stack using Linked List

  • When to use/avoid Stack

  • Stack Quiz

Section 19 - Queue

  • What is Queue?

  • Queue using Python List - no size limit

  • Queue using Python List - no size limit , operations (enqueue, dequeue, peek)

  • Circular Queue - Python List

  • Circular Queue - Python List, Operations (enqueue, dequeue, peek, )

  • Queue - Linked List

  • Queue - Linked List, Operations (Create, Enqueue)

  • Queue - Linked List, Operations (Dequeue(), isEmpty, Peek)

  • Time and Space complexity of Queue using Linked List

  • List vs Linked List Implementation

  • Collections Module

  • Queue Module

  • Multiprocessing module

Section 20 - Cracking Stack and Queue Interview Questions (Amazon,Facebook, Apple, Microsoft)

  • Question 1 - Three in One

  • Question 2 - Stack Minimum

  • Question 3 - Stack of Plates

  • Question 4 - Queue via Stacks

  • Question 5 - Animal Shelter

Section 21 - Tree / Binary Tree

  • What is a Tree?

  • Why Tree?

  • Tree Terminology

  • How to create a basic tree in Python?

  • Binary Tree

  • Types of Binary Tree

  • Binary Tree Representation

  • Create Binary Tree (Linked List)

  • PreOrder Traversal Binary Tree (Linked List)

  • InOrder Traversal Binary Tree (Linked List)

  • PostOrder Traversal Binary Tree (Linked List)

  • LevelOrder Traversal Binary Tree (Linked List)

  • Searching for a node in Binary Tree (Linked List)

  • Inserting a node in Binary Tree (Linked List)

  • Delete a node from Binary Tree (Linked List)

  • Delete entire Binary Tree (Linked List)

  • Create Binary Tree (Python List)

  • Insert a value Binary Tree (Python List)

  • Search for a node in Binary Tree (Python List)

  • PreOrder Traversal Binary Tree (Python List)

  • InOrder Traversal Binary Tree (Python List)

  • PostOrder Traversal Binary Tree (Python List)

  • Level Order Traversal Binary Tree (Python List)

  • Delete a node from Binary Tree (Python List)

  • Entire Binary Tree (Python List)

  • Linked List vs Python List Binary Tree

Section 22 - Binary Search Tree

  • What is a Binary Search Tree? Why do we need it?

  • Create a Binary Search Tree

  • Insert a node to BST

  • Traverse BST

  • Search in BST

  • Delete a node from BST

  • Delete entire BST

  • Time and Space complexity of BST

Section 23 - AVL Tree

  • What is an AVL Tree?

  • Why AVL Tree?

  • Common Operations on AVL Trees

  • Insert a node in AVL (Left Left Condition)

  • Insert a node in AVL (Left Right Condition)

  • Insert a node in AVL (Right Right Condition)

  • Insert a node in AVL (Right Left Condition)

  • Insert a node in AVL (all together)

  • Insert a node in AVL (method)

  • Delete a node from AVL (LL, LR, RR, RL)

  • Delete a node from AVL (all together)

  • Delete a node from AVL (method)

  • Delete entire AVL

  • Time and Space complexity of AVL Tree

Section 24 - Binary Heap

  • What is Binary Heap? Why do we need it?

  • Common operations (Creation, Peek, sizeofheap) on Binary Heap

  • Insert a node in Binary Heap

  • Extract a node from Binary Heap

  • Delete entire Binary Heap

  • Time and space complexity of Binary Heap

Section 25 - Trie

  • What is a Trie? Why do we need it?

  • Common Operations on Trie (Creation)

  • Insert a string in Trie

  • Search for a string in Trie

  • Delete a string from Trie

  • Practical use of Trie

Section 26 - Hashing

  • What is Hashing? Why do we need it?

  • Hashing Terminology

  • Hash Functions

  • Types of Collision Resolution Techniques

  • Hash Table is Full

  • Pros and Cons of Resolution Techniques

  • Practical Use of Hashing

  • Hashing vs Other Data structures

Section 27 - Sort Algorithms

  • What is Sorting?

  • Types of Sorting

  • Sorting Terminologies

  • Bubble Sort

  • Selection Sort

  • Insertion Sort

  • Bucket Sort

  • Merge Sort

  • Quick Sort

  • Heap Sort

  • Comparison of Sorting Algorithms

Section 28 - Searching Algorithms

  • Introduction to Searching Algorithms

  • Linear Search

  • Linear Search in Python

  • Binary Search

  • Binary Search in Python

  • Time Complexity of Binary Search

Section 29 - Graph Algorithms

  • What is a Graph? Why Graph?

  • Graph Terminology

  • Types of Graph

  • Graph Representation

  • Create a graph using Python

  • Graph traversal - BFS

  • BFS Traversal in Python

  • Graph Traversal - DFS

  • DFS Traversal in Python

  • BFS Traversal vs DFS Traversal

  • Topological Sort

  • Topological Sort Algorithm

  • Topological Sort in Python

  • Single Source Shortest Path Problem (SSSPP)

  • BFS for Single Source Shortest Path Problem (SSSPP)

  • BFS for Single Source Shortest Path Problem (SSSPP) in Python

  • Why does BFS not work with weighted Graphs?

  • Why does DFS not work for SSSP?

  • Dijkstra's Algorithm for SSSP

  • Dijkstra's Algorithm in Python

  • Dijkstra Algorithm with negative cycle

  • Bellman Ford Algorithm

  • Bellman Ford Algorithm with negative cycle

  • Why does Bellman Ford run V-1 times?

  • Bellman Ford in Python

  • BFS vs Dijkstra vs Bellman Ford

  • All pairs shortest path problem

  • Dry run for All pair shortest path

  • Floyd Warshall Algorithm

  • Why Floyd Warshall?

  • Floyd Warshall with negative cycle,

  • Floyd Warshall in Python,

  • BFS vs Dijkstra vs Bellman Ford vs Floyd Warshall,

  • Minimum Spanning Tree,

  • Disjoint Set,

  • Disjoint Set in Python,

  • Kruskal Algorithm,

  • Kruskal Algorithm in Python,

  • Prim's Algorithm,

  • Prim's Algorithm in Python,

  • Prim's vs Kruskal

Section 30 - Greedy Algorithms

  • What is Greedy Algorithm?

  • Well known Greedy Algorithms

  • Activity Selection Problem

  • Activity Selection Problem in Python

  • Coin Change Problem

  • Coin Change Problem in Python

  • Fractional Knapsack Problem

  • Fractional Knapsack Problem in Python

Section 31 - Divide and Conquer Algorithms

  • What is a Divide and Conquer Algorithm?

  • Common Divide and Conquer algorithms

  • How to solve Fibonacci series using Divide and Conquer approach?

  • Number Factor

  • Number Factor in Python

  • House Robber

  • House Robber Problem in Python

  • Convert one string to another

  • Convert One String to another in Python

  • Zero One Knapsack problem

  • Zero One Knapsack problem in Python

  • Longest Common Sequence Problem

  • Longest Common Subsequence in Python

  • Longest Palindromic Subsequence Problem

  • Longest Palindromic Subsequence in Python

  • Minimum cost to reach the Last cell problem

  • Minimum Cost to reach the Last Cell in 2D array using Python

  • Number of Ways to reach the Last Cell with given Cost

  • Number of Ways to reach the Last Cell with given Cost in Python

Section 32 - Dynamic Programming

  • What is Dynamic Programming? (Overlapping property)

  • Where does the name of DC come from?

  • Top Down with Memoization

  • Bottom Up with Tabulation

  • Top Down vs Bottom Up

  • Is Merge Sort Dynamic Programming?

  • Number Factor Problem using Dynamic Programming

  • Number Factor : Top Down and Bottom Up

  • House Robber Problem using Dynamic Programming

  • House Robber : Top Down and Bottom Up

  • Convert one string to another using Dynamic Programming

  • Convert String using Bottom Up

  • Zero One Knapsack using Dynamic Programming

  • Zero One Knapsack - Top Down

  • Zero One Knapsack - Bottom Up

Section 33 - CHALLENGING Dynamic Programming Problems

  • Longest repeated Subsequence Length problem

  • Longest Common Subsequence Length problem

  • Longest Common Subsequence  problem

  • Diff Utility

  • Shortest Common Subsequence  problem

  • Length of Longest Palindromic Subsequence

  • Subset Sum Problem

  • Egg Dropping Puzzle

  • Maximum Length Chain of Pairs

Section 34 - A Recipe for Problem Solving

  • Introduction

  • Step 1 - Understand the problem

  • Step 2 - Examples

  • Step 3 - Break it Down

  • Step 4 - Solve or Simplify

  • Step 5 - Look Back and Refactor

Python for Data Science – Great Learning

Learn all the concepts of Python from scratch

Created by Bharani Akella - Instructor at Great Learning


Students: 18451, Price: Free

Students: 18451, Price:  Free

Python is a versatile language, which is used for varied purposes such as: Machine Learning, Game Development and Visualization. So, it becomes a necessity to have knowledge in Python programming to get that high-profile job.

Keeping the importance of Python in mind, Great Learning has come up with a comprehensive tutorial. The course will comprise of following topics:

  • Introduction and Installing Python

  • Variables and Data Types in Python

  • Operators in Python

  • Python Strings

  • Python Tuple

  • Python List

  • Dictionary in Python

  • Set in Python

  • If Statement

  • Looping Statements in Python

  • User-Defined Functions

  • Object-Oriented Programming in Python

  • NumPy Library in Python

  • Pandas in Python

  • Matplotlib in Python

Data Structures in Java – Part I (+INTERVIEW QUESTIONS)

Basic Algorithms and Data Structures: AVL tree, Binary Search Trees, Arrays, B trees, Linked Lists, Stacks and HashMaps

Created by Holczer Balazs - Software Engineer


Students: 14954, Price: $99.99

Students: 14954, Price:  Paid

This course is about data structures and algorithms. We are going to implement the problems in Java. The course takes approximately 14 hours to complete. It is highly recommended to type out these data structures several times on your own in order to get a good grasp of it. 

Section 1:

  • data structures and abstract data types

Section 2 - Arrays

  • what are arrays

  • what is random access and how to indexes

Section 3 - Linked Lists

  • linked lists and doubly linked lists

  • linked list related interview questions

Section 2 - Stacks and Queues:

  • what are stacks and queues

  • heap memory and stack memory

  • visualizing stack memory

Section 3 - Binary Search Trees (BSTs):

  • what are tree data structures?

  • how to achieve O(logN) logarithmic running time?

  • binary search trees

Section 4 - AVL Trees

  • what is the problem with binary search trees?

  • balanced search trees: AVL trees

  • rotations

Section 5 - Red-Black Trees

  • what are red-black trees?

  • what is recovering operation?

  • comparing AVL trees and red-black trees

Section 6 - Splay Trees

  • splay trees and caches

  • achieve O(1) running time for getting the recently visited item

Section 7 - Heaps and Priority Queues

  • what are priority queues?

  • what is heap data structure?

  • how to do sorting in O(NlogN) with heaps?

Section 8 - B-Trees

  • external memory and the main memory (RAM)

  • B-trees and their applications in memory

  • B* trees and B+ trees

Section 9 - Hashing and HashMaps:

  • what are hashing and hashtables (hashmaps)

  • what are hash-functions

  • how to achieve O(1) running time complexity

Section 10 (BONUS):

  • what is LRU cache

  • LRU cache implementation

Section 11 (BONUS):

  • Fenwick trees (binary indexed trees)

  • binary indexed tree implementation

In each chapter you will learn about the theoretical background of each algorithm or data structure, then we are going to write the code on a step by step basis in Eclipse, Java.

Most of the advanced algorithms relies heavily on these topics so it is definitely worth understanding the basics. These principles can be used in several fields: in investment banking, artificial intelligence or electronic trading algorithms on the stock market.

Thanks for joining the course, let's get started!

Data Structures A-Z : Data Structures + Algorithms Bootcamp

Become ace in data structures & algorithms & Crack the code interview by getting mastery in data structures & algorithms

Created by Vinoth Parthasarathy - Instructor


Students: 13986, Price: $89.99

Students: 13986, Price:  Paid

Congratulations!  You've found the most popularmost complete, and most up-to-date resource online for learning Data structures and Algorithms.

Do you want to crack your next coding interview? Do you want to be a master in solving challenging Algorithms?

Are you interested in the field of Data structures? Are you interested to play around with complex Algorithms?  Then this course is for you!

You need to understand algorithms and data structures because I've seen code written by people who didn't understand Data structures and algorithms; and trust me, you don't want to be that guy.

The entire course is based around a single goal: Turning you into a professional programmer & capable of writing code as a professional.

Are you scared about the coding interview? Join me in this Adventure, Crack your coding interview by getting mastery in data structures & algorithms.

There are lots of free tutorials and videos on YouTube. Why would you want to take this course? The answer is simple: Quality of teaching. So, from the very beginning to the very end, you'll be confident that you'll be in good hands and watching every minute of the course, unlike reading many free tutorials and videos, do not waste your precious time. Each section is equipped with a balanced mix of theory and Implementation.

It's my goal to make clear Data structures and Algorithms as much as possible and ensure your success. I want everyone to benefit from my courses, that's why we'll dive deeply into Data structures and Algorithms concepts and why I made sure to also share the knowledge that's helpful to programmers

I can promise you that, this is the most comprehensive and modern course you can find on data structures & algorithms on udemy or anywhere else- it's based on all my knowledge And teaching experience. It's both a complete guide, starting with the core basics of the language, as well as an extensive reference of the data structures & algorithms, ensuring that both newcomers, as well as experienced developers, get a lot out of this course! It's my goal to make you clear about the concepts of data structures & algorithms as much as possible. To accomplish this, throughout the course, extensive use of slides and graphics is being utilized in order to aid the understanding and memorability of complex concepts. Moreover, the course is packed with practical exercises that are based on real-life examples. So not only will you learn the theory, but you will also get some hands-on practice building your own project. This course is designed to be fast at getting you started but also get you deep into the "why" of things. Simply the fastest and best way to learn the latest skills. Look at the scope of topics in the Session and see the breadth of skills you will learn.

Why it’s the only course you need to learn Data Structures and Algorithms?

This course is everything you need from start to end regardless of your experience.

It's an interactive course. Instead of explaining the concepts with Powerpoint slides, I will take you to the classroom again.

These course videos are designed very carefully to make you more engaging and you won’t get bored while watching the course videos. Unlike other learning videos which you can find on other courses or on YouTube, this course is carefully designed with full of animated content that will make learners grasp the concepts quickly and easily. In this way, you can understand even hard topics/concepts easily.

While you take this course, you will feel the simplicity of learning the language, This is because time spent for preparation for the videos (script for the videos and video structure) and video editing (to cut boring pieces of the lesson or time when the program loads) is huge. And also the structure of the course is created based on beginners in mind. And also this course will be a good reference for those who are already having good knowledge of data structures and algorithms.

Don’t take my word for it. Check the reviews and see what other students are saying


No Words!! The explanation is very simple and clear, And its perfect combination of theory plus practical on Data structure, And I'm simply amazed by the instructor as they make such a hard topic like Data structure very easy to learn.

And it's crisp and straight to the point and examples are really great and the way in which the presenter describes the topic is also very helpful.

Thanks a lot! - Giada


The Concepts are presented in a simpler & detailed way in a short span of time. This is the best course for learning data structures from scratch. Tree part has the best explanation. Sir, you helped me face my fears regarding data structures & coding & have boosted up my confidence. Sir, please post courses on competitive coding Vinoth Sir cause you are the best. - Divyakanti Batabyal


It's a good experience so far, I'm loving the content! I'll give a full review once I'm done. So far I feel it's a very valuable course. Update: After finishing the course I am very happy with it. This is a wonderful course and Vinoth, you have really done an awesome job. Before this course I really don't have much knowledge of Data Structures, this course is designed, which made me really confident about my learning. Thanks a lot, Vinoth. Keep up the great work! - Gayathri


It is evident that Vinoth has put a lot of thought into planning this course. It is well organized and the topics lead nicely into one another. Moreover, Vinoth's teaching experience helps the complex topics to grasp easily. I am really enjoying the course and think Vinoth's teaching style is stellar - Ravi


In a very simple and clear manner, the trainer is explaining things and giving us chance to think and develop our own logic for implementing data structures. It really makes complex things simple !!! I found the videos and code samples very clear and precise. A very good foundation course on data structure -Abhishek Agarwal


the way of teaching is very good, sir is teaching with real-time examples which helps us to easily understand the topic. Sir made this course very easy for me to understand, such a great teacher - Aditya Bohra


This course is a good match for me, Till start, to end its well-executed, Content and syllabus is good, for me as a beginner is very useful, i learnt lots of thing from this course, Thank you very much for such a wonderful course. thanks - Magnus


Explained clearly, This course covers all the basics and beyond. I learnt what I want to learn plus much more. Vinoth explains clearly, I enjoyed the way he taught, very precisely and briefly. Honestly, the course is good for beginners - Noel


I found this course is much valuable for me, especially Tree and Graph sections are awesome, Neat presentation, easily understandable course, overall its must have taken the course who what to understand data structures and algorithms from the base. Thanks - Abinav


Incredibly comprehensive course! I found this course really well laid out and easy to get to grips with, concepts were introduced in a very logical manner which made it easy to follow. Overall this course matched my expectations and expanding my current knowledge of data structures. Thanks - Trinity


Super Good! The teaching style, content and quality of the course all are excellent. Over this is the perfect material for data structures and algorithms. I will highly recommend this course to my friends. Thanks a lot for such a wonderful course. - Celia

Why you should learn Data Structures and Algorithms:

  • Industry Demand for Data Structures and Algorithms: Top tier tech brands such as Google, Facebook, Microsoft, Youtube, etc. focus more on designing things in the most optimal manner that improves user experience and enhances tracking and managing. These companies ask most of the questions related to Data Structures and Algorithms in interviews to assess a candidate's approach for solving any real-world problem.

  • Solve the problem more efficiently: The search engine may provide source code for solving the issue or steps for you to fix the issue. But, the real programmer understands the Application Programming Interface internals including data structure and make the decision.

  • Improving problem-solving and analytical skills: Data Structures and Algorithms are not only crucial to land your dream job, but it also helps in improving problem-solving and analytical skills that can prompt you to think out-of-the-box solutions.

  • Use the Right tool to solve the problem: The data structure and algorithm provide a set of techniques to the programmer for handling the data efficiently. The programmer should understand the core concepts of data handling the data. Data structure and algorithms help you to decide the right tool for your job

  • Furthermore, it will also enable your future endeavours as it is something that will never go out of demand considering the rapid evolution of technologies and an increasing amount of data.

Here’s just some of what you’ll learn

(It’s okay if you don’t understand all this yet, you will in the course)

This course is fun and exciting, but at the same time, we dive deep into Data Structures and Algorithms. Specifically, you will learn :

· Understanding the core principles of coding.

· Understanding code complexity and how to write code efficiently and various levels of complexity.

· Basics of Data Structures and algorithms

· Basic data structures (Arrays, linked list, and Hash Table)

· Tree data structures

· Graph data structures

· Algorithms to apply Graph in product implementation

· Searching algorithms

· Various Sorting algorithms

Frequently Asked Questions:

Will I be able to learn Data Structures and Algorithms and find a job after completing this course?

YES, This course covers all the topics in a very detailed way which you need to know to become a professional Data Structures and Algorithms. However, you will be able to learn Data Structures and Algorithms and be job-ready heavily depends on you once you completed this course.

If you merely watch the videos, you will hardly learn anything without trying things on your computer. Instead, try the code on your computer, change the code, run it, improve it further, rerun it, fix the possible errors, try making a similar app, repeat, ask questions in the Q&A when you get stuck, and try to solve all the exercises in the course. That way, you will undoubtedly learn how to use Data Structures and Algorithms and find a job.

How much time will I need to complete the course?

That depends on how much effort you can put into learning the language. If you dedicatedly follow the course, you can complete the course in 1 week. And If you practice the programs in day to day life, You will be getting familiar with the Data Structures and Algorithms in a very short period.

I don't know anything about programming. Will I still be able to learn Data Structures and Algorithms?

Absolutely YES. This course assumes you have no previous knowledge of any programming.

Do I need to have any prior knowledge to take this course?

A big NO. You don’t need any prior knowledge to take this course. I have designed this course which makes it comfortable even for beginners. It starts from the absolute beginner level initially and gradually moving to complex and advanced level topics. And also this course is filled up full of practical and fun examples. You will learn the core skills step by step with hands-on experience. And If you are already comfortable with coding and need to refresher your skill, this course will be suitable for you, too. Every time you come back to this course you will learn something new or improve yourself.

Does the course expire?

No. Once you buy the course, it's yours. I update the content regularly, and all the updates come to you for free in the one-time purchase you make.

Will I get support if I get stuck?

Yes. Feel free to drop a question in the Q&A, and I will answer your questions within the same day. I covered almost everything that you need to become expert in Data Structures and Algorithms. if you feel, this course wasn’t complete enough, I offer full support, answering any questions you have 7 days a week.

What if I have questions?

As if this course wasn’t complete enough, I offer full support, answering any questions you have 7 days a week.

What’s stopping you from signing up today?

You don’t have enough time? Not an issue. I’ve designed this course so you can learn everything you need in as little as ONE week.

You’re still weighing up the value? Listen. I’ve made this course bigger, better and more affordable—with even more content and more coding tips and best practices —than EVER before. And In this course, I show you how to create all of the code from scratch. You can type the code along with me in the videos, which is the best way to learn. And I am a very responsive instructor and I am available to answer your questions and help you work through any problems.

You don’t have any previous experience? Seriously, not a problem. This course is expertly designed to teach everyone from complete beginners, right through to pro developers. (And yes, even pro developers take this course to quickly absorb the latest skills, while refreshing existing ones).

Straight up: There's no other course that teaches you that, so join thousands of other students who have successfully applied their data structures and algorithms in the real world. Sign up and start learning the expert in data structures and algorithms today!

Sounds great, doesn’t it? Are you ready for a life-changing adventure? If you are serious about your career as a software developer, this is the only Bootcamp you will need. Then don't waste your time with random tutorials or incomplete youtube videos. This course is an easy-to-follow, all-in-one packages that will take your skills to the next level.

Buy this course today, and you will get all updates for FREE!

Enroll now and begin your journey towards the most lucrative, adventurous and exciting career path you can imagine! Or, take this course for a free spin using the preview feature, so you know you’re 100% certain this course is for you.


This course comes with a 30-day full money-back guarantee. Take the course, go through the lectures, do the exercises, and if you're not happy, ask for a refund within 30 days. All your money back every last penny questions asked.

You either end up with an expert in Data Structures and algorithms skills, go on to develop great programs and potentially make an awesome career for yourself, or you try the course and simply get all your money back if you don’t like it… (And why not give such a guarantee? I certain this course will provide a ton of value for you)

You literally can’t lose.

See you on the inside (hurry, Data structures, and algorithm class is waiting!)

Data Structures and Algorithms Bootcamp

How to ace your Silicon Valley style coding interview

Created by Jonathan Rasmusson - Ex-Spotify Engineer, The Agile Samurai


Students: 13396, Price: $99.99

Students: 13396, Price:  Paid

This course is about getting you up-to-speed quickly on the fundamental computer science concepts you are going to be expected to know if you want interview at any large Silicon Valley tech company (Google, Apple, Facebook, Amazon, or Spotify).

Topics include

  • Arrays

  • Linked Lists

  • Big O notation

  • Stacks & Queues

  • Hash Tables

  • Binary Trees

  • Binary Heaps

  • Dynamic Programming & Memoization

  • Bubble Sort / Merge Sort / Quick Sort

  • Graphs

  • Breadth First Search

  • Depth First Search

  • More...

What you get

With this course you get

  • Over 115 beautifully hand crafted HD videos walking you through every aspect of how all these data structures and algorithms work

  • Practices questions and personal walkthroughs of the most commonly asked interview questions

  • My personal notes on interviews I have personally had with Spotify, Facebook, Amazon, and others

  • A section called The Classics where we walk through classic interview questions no interviewee should be with out

  • Interview tips on soft skills big tech companies look for when hiring and techniques on how to answer

What you save

By investing in yourself with this course you are saving yourself the most precious thing you’ve got - time. I have spent a year scouring the web looking for the best examples, the simplest explanations, the best visualizations on how to explain how this stuff works, and assembled it all into one, quick, easy to digest place.

Let's do this together

Learning data structures and algorithms doesn’t have to be a chore. It can be fun. And I want you to know I am here for you every step of the way. Ask me any question. I usually get back to my students with 24 hrs. And together, we will get you the understanding behind how these things work.

I also don’t have a formal computer science background

Look. I know what it’s like not to know how this stuff works. And, like you, I have had to learn this stuff from scratch.

But I am here to tell you it can be done. I have no formal computer science background. I am not classically trained as a computer scientist. But by learning this material, I landed my dream job as an engineer at Spotify in San Francisco. And so can you.

So what are you waiting for? Sign up and get started on your journey today.


Here are some testimonials from students who have taken the course.

Tiffany Scott

Best $10 I've ever spent. The explanations are concise and are giving me confidence for my upcoming Microsoft and Facebook interviews. Planning on finishing the course in 4 days to give me ample time to practice problems.

Saif Addin Ellafi

Really, this will sound like exaggeration. But this course is perfect, 5 stars falls short. The instructor puts the content in a an easy to follow order, videos are short to keep attention and leave you wanting to know more. Concise and important points are made very clear, with zero repetition. Native speaker offers no challenge for understanding, especially if you are not a native speaker. Answers questions very quickly. The course WONT teach you how to program, so forget about 100% coding from scratch or having pedagogical exercises. It relies on you to check out the code, re-write it, practice and research deeper the concepts. Examples are written in Java, but they are very agnostic to the language (aside of having to setup a java environment to run tests). Huge focus on acing interviews. A clear target of the course makes it great and an example. Time and pacing are perfect, no need to slow down or speed up. Overall 10 out of 5.

Anna Teittinen

I completed this course in my busy schedule within 3 weeks of learning I will have technical phone interviews with both Google and Facebook. I learned so much and understood everything without memorizing, unlike when I was in school. I recently learned I did well on both phone interviews. I will have a second technical phone interview with both companies again in mid Jan. I highly recommend this course! Thank you very much Jonathan!

Rick A

I took your course in the very beginning of my interview prep to refresh all my concepts. I think you've done a great job in this course. After a lot of practice using these concepts I got pretty good at it. I got multiple offers from big N including Google, Facebook, Amazon and Microsoft. I would like to take this moment to thank you for creating the course and being available to answer our queries.

Luciano Sa

Amazing course! Very well explained, great didactic which makes it very easy to follow and understand! I wish these stars were exponential. :)

Kavitha Bhasker

I am really thankful I found this course on Udemy. It has been 15 years since I learnt these concepts during my engineering college days and needed to brush up on them for interview prep. This course really nailed the contents and exercise that are asked in tech interviews these days. The tone of the instructor is very friendly and calm and make you think rather than put you in a spot. I was asked for a interview query on whether to use an array vs hashmap in a certain scenario and was able to nail the answer and also give the Time complexity with confidence . I landed the job and will be starting next week. Thank you so much!

Eyal Carmi

Great. I like the that Jonathan filters what we actually need for an interview - instead of being flood with lot's of data, he notes you what worth remembering. His explanations are clear, and if you don't understand something, just ask him and he explains it to you.

Flavio Marques Migowski Carvalho

One of the best course I've had. It's very well explained, each step in the coding is shown and explained with drawings. I think some design and architecture problems would be very handy! Thank you for making this course for us!

Adam Mendoza

Best course I've seen to brush up on algorithms and data structures to prepare for an interview at competitive companies. Really, a class apart.


I love the course overall. Very engaging. The Instructor, Jonathan is a great mentor and has this calm and assuring voice that puts the confidence in anyone who does not have programming experience before. He not only covered the technical aspects of almost all the important algorithms but also added a great ending with the interviewing tips which is really helpful. I would recommend this course to everyone who want to brush up on algorithms and just be ready enough to start with their interview.

Juwan Turner-Howard

I can program. I thought I "knew" about arrays, but this helping me to know the why which can allow me to make better tradeoffs when it's time to choose between linkedlist(probably O(n) get and set time) versus the O(1) array get and set time. If the rest of the course is consistent with the style and value of information in this first module... whew... I'm in for a good ride. So happy and excited about this course thus far though.

Aung Khant Nyra

I would say Jonathan has done a great job of showing you how to prepare for interview problems by giving you a touch of basic data structures and a bird's eye view of the a typical interview. I am in the bay area and personally for me, this course is pretty basic and I am preparing for interviews myself, so this course was helpful for me although it didn't include advanced topics like dynamic programming and so on. Of course, there are countless interview practice problems online so I understand, it's impossible for him to cover everything. Anyways, I love the course . It is better to learn from a professional who is in the field instead of learning from a professor or a lecturer.

Ramachandran Rajagopalan

Good course to wrap your head around DSA if you are a beginner. For others who have a got a week's time for the interview and need a refresher then grab this. Thanks, Jonathan. Good work.

Learning Data Structures in JavaScript from Scratch

Write more efficient & performant code by learning data structures. Be well prepared for technical interview questions.

Created by Eric Traub - Software Engineer and Instructor


Students: 13355, Price: $89.99

Students: 13355, Price:  Paid

This course teaches data structures (linked lists, binary search trees, hash tables) from the ground up.  Data structures allow you to improve the efficiency, performance, speed, and scalability of your code/programs/applications.  You will learn what data structures are, why they are important, and how to code them out in JavaScript.  You will also learn other important programming concepts along the way such as recursion, time complexity, the "this" keyword, the prototype object, and constructor functions, since data structures use these concepts by their very nature.  This course heavily uses diagrams and animations to help make understanding the material easier.

This course is also very good for anyone who is interviewing for developer/engineering jobs at both large and small companies.  Interviewers will very often ask candidates to write data structures out in code, and this course will prepare you very well to do that.  If you have recently graduated from a coding bootcamp or are currently looking for a job, you will find this course to be beneficial.  Knowing data structures will help you to excel in technical interviews.