Best online video courses for Data Structures And Algorithms

Friends, this article lists some the of best courses available online on Data Structures and Algorithms. We recommend to go through them to have strong basics.


Data Structures and Algorithms by Dr. Naveen Garg

Lecture Series on Data Structures and Algorithms by Dr. Naveen Garg, Department of Computer Science and Engineering, IIT Delhi.

Playlist Details –

  1. Lecture – 1 Introduction to Data Structures and Algorithms
  2. Lecture – 2 Stacks
  3. Lecture – 3 Queues and Linked Lists
  4. Lecture – 4 Dictionaries
  5. Lecture – 5 Hashing
  6. Lecture – 6 Trees
  7. Lecture – 7 Tree Walks / Traversals
  8. Lecture – 8 Ordered Dictionaries
  9. Lecture – 9 Deletion
  10. Lecture – 10 Quick Sort
  11. Lecture – 11 AVL Trees
  12. Lecture – 12 AVL Trees
  13. Lecture – 13 Trees
  14. Lecture – 14 Red Black Trees
  15. Lecture – 15 Insertion in Red Black Trees
  16. Lecture – 16 Disk Based Data Structures
  17. Lecture – 17 Case Study: Searching for Patterns
  18. Lecture – 18 Tries
  19. Lecture – 19 Data Compression
  20. Lecture – 20 Priority Queues
  21. Lecture – 21 Binary Heaps
  22. Lecture – 22 Why Sorting
  23. Lecture – 23 More Sorting
  24. Lecture – 24 Graphs
  25. Lecture – 25 Data Structures for Graphs
  26. Lecture – 26 Two Applications of Breadth First Search
  27. Lecture – 27 Depth First Search
  28. Lecture – 28 Applications of DFS
  29. Lecture – 29 DFS in Directed Graphs
  30. Lecture – 30 Applications of DFS in Directed Graphs
  31. Lecture – 31 Minimum Spanning Trees
  32. Lecture – 32 The Union
  33. Lecture – 33 Prims Algorithm for Minimum Spanning Trees
  34. Lecture – 34 Single Source Shortest Paths
  35. Lecture – 35 Correctness of Dijkstras Algorithm
  36. Lecture – 36 Single Source Shortest Paths

Click here to download all PDFs to his lecture documentation.




1. Pointers in C/C++

Pointers is one concept that does not go well with beginners. This series of videos will try to demystify pointers.

Playlist Details –

  1. Introduction to pointers in C/C++
  2. Working with pointers
  3. Pointer types, pointer arithmetic, void pointers
  4. Pointers to Pointers in C/C++
  5. Pointers as function arguments – call by reference
  6. Pointers and arrays
  7. Arrays as function arguments
  8. Character arrays and pointers – part 1
  9. Character arrays and pointers – part 2
  10. Pointers and 2-D arrays
  11. Pointers and multidimensional arrays
  12. Pointers and dynamic memory – stack vs heap
  13. Dynamic memory allocation in C – malloc calloc realloc free
  14. Pointers as function returns in C/C++
  15. Function Pointers in C / C++
  16. Function pointers and callbacks
  17. Memory leak in C/C++


2. Data structures

This series of lessons covers Data Structures. Data structures are implemented in C or C++. Pre-requisite for this lesson is good understanding of pointers in C. Watch above series on pointers before starting on this series.

Playlist Details –

  1. Introduction to data structures
  2. Data Structures: List as abstract data type
  3. Introduction to linked list
  4. Data Structures: Arrays vs Linked Lists
  5. Linked List – Implementation in C/C++
  6. Linked List in C/C++ – Inserting a node at beginning
  7. Linked List in C/C++ – Insert a node at nth position
  8. Linked List in C/C++ – Delete a node at nth position
  9. Reverse a linked list – Iterative method
  10. Print elements of a linked list in forward and reverse order using recursion
  11. Reverse a linked list using recursion
  12. Data structures: Introduction to Doubly Linked List
  13. Doubly Linked List – Implementation in C/C++
  14. Data structures: Introduction to stack
  15. Data structures: Array implementation of stacks
  16. Data Structures: Linked List implementation of stacks
  17. Reverse a string or linked list using stack.
  18. Check for balanced parentheses using stack
  19. Infix, Prefix and Postfix
  20. Evaluation of Prefix and Postfix expressions using stack
  21. Infix to Postfix using stack
  22. Data structures: Introduction to Queues
  23. Data structures: Array implementation of Queue
  24. Data structures: Linked List implementation of Queue
  25. Data structures: Introduction to Trees
  26. Data structures: Binary Tree
  27. Data structures: Binary Search Tree
  28. Binary search tree – Implementation in C/C++
  29. BST implementation – memory allocation in stack and heap
  30. Find min and max element in a binary search tree
  31. Find height of a binary tree
  32. Binary tree traversal – breadth-first and depth-first strategies
  33. Binary tree: Level Order Traversal
  34. Binary tree traversal: Preorder, Inorder, Postorder
  35. Check if a binary tree is binary search tree or not
  36. Delete a node from Binary Search Tree
  37. Inorder Successor in a binary search tree
  38. Data structures: Introduction to graphs
  39. Data structures: Properties of Graphs
  40. Graph Representation part 01 – Edge List
  41. Graph Representation part 02 – Adjacency Matrix


3. Sorting Algorithms

This series of lessons covers and analyze various sorting algorithms.

Playlist Details –

  1. Introduction to sorting algorithms
  2. Selection sort algorithm
  3. Bubble sort algorithm
  4. Insertion sort algorithm
  5. Merge sort algorithm
  6. Analysis of Merge sort algorithm
  7. Quicksort algorithm
  8. Analysis of quicksort


4. Binary Search

In this series of lessons, we will learn binary search and solve problems using binary search.

Playlist Details –

  1. What is binary search
  2. Binary Search – Iterative Implementation and common errors
  3. Binary Search – Recursive implementation
  4. Binary search – finding first or last occurrence of a number
  5. Count occurrences of a number in a sorted array with duplicates using Binary Search
  6. How many times is a sorted array rotated?
  7. Search element in a circular sorted array



MIT 6.046J / 18.410J Introduction to Algorithms (SMA 5503)


This course strictly follows CLRS book and one of the instructor is Prof. Charles Leiserson, co-author of CLRS book himself. This course teaches techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. Topics covered include: sorting; search trees, heaps, and hashing; divide-and-conquer; dynamic programming; amortized analysis; graph algorithms; shortest paths; network flow; computational geometry; number-theoretic algorithms; polynomial and matrix calculations; caching; and parallel computing.

Playlist Details –

  1. Lecture 1: Administrivia; Introduction; Analysis of Algorithms, Insertion Sort, Mergesort
  2. Lecture 2: Asymptotic Notation; Recurrences; Substitution, Master Method
  3. Lecture 3: Divide-and-Conquer: Strassen, Fibonacci, Polynomial Multiplication
  4. Lecture 4: Quicksort, Randomized Algorithms
  5. Lecture 5: Linear-time Sorting: Lower Bounds, Counting Sort, Radix Sort
  6. Lecture 6: Order Statistics, Median
  7. Lecture 7: Hashing, Hash Functions
  8. Lecture 8: Universal Hashing, Perfect Hashing
  9. Lecture 9: Relation of BSTs to Quicksort – Analysis of Random BST
  10. Lecture 10: Red-black Trees, Rotations, Insertions, Deletions
  11. Lecture 11: Augmenting Data Structures, Dynamic Order Statistics, Interval Trees
  12. Lecture 12: Skip Lists
  13. Lecture 13: Amortized Algorithms, Table Doubling, Potential Method
  14. Lecture 14: Competitive Analysis: Self-organizing Lists
  15. Lecture 15: Dynamic Programming, Longest Common Subsequence
  16. Lecture 16: Greedy Algorithms, Minimum Spanning Trees
  17. Lecture 17: Shortest Paths I: Properties, Dijkstra’s Algorithm, Breadth-first Search
  18. Lecture 18: Shortest Paths II: Bellman-Ford, Linear Programming, DifferenceConstraints
  19. Lecture 19: Shortest Paths III: All-pairs Shortest Paths, Matrix Multiplication, FloydWarshall, Johnson
  20. Audio/video for lectures 20 and 21 are not available
  21. Lecture 22: Advanced Topics
  22. Lecture 23: Advanced Topics (cont.)
  23. Lecture 24: Advanced Topics (cont.)
  24. Lecture 25: Advanced Topics (cont.) – Discussion of Follow-on Classes

The Course problems sets are available here. Below are the links to download slides/transcripts of above lectures –

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 22 23 24 25

All the very best 🙂

Leave a Reply

newest oldest most voted
Notify of

CS 61B UC Berkeley. I don’t know if it’s the best but it’s the only series on the topic I’ve ever watched all the way through:


Not recorded lectures, but the ‘best’ book I’ve found lately for a good intro is [1]”Basic Concepts in Data Structures” by Shmuel Tomi Klein. It uses pseudocode so can be done in any language. Look at the preview table of contents. There’s a cheaper paperback and Amazon has used copies.

Another good book is CMU’s parallel data structures and algorithms course which uses this [2] free book


If you don’t mind dropping a few bucks on Coursera, Tim Roughgarden’s algorithms sequence adopted from his Stanford lectures and MOOC are exceptional:

Can’t recommend enough. The material and instruction are top-notch.


While I’m always suspicious of the word “Best” when applied to a list this does look quite interesting. Looks like a lot of the material overlaps but I’m guessing that’s not a bad thing for complex material like this.


Princeton’s CS department has an excellent site with code (Java) that comes from a book written by a couple of their professors. You should definitely check it out when you can. Google “Algs 4 Princeton” and you’ll find it. If you have questions, ask away. There’s some things though that I think require a bit of prior knowledge in Discrete Math to grasp easily, especially when it comes to asymptotic analysis.