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

1. 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 Prim’s Algorithm for Minimum Spanning Trees
  34. Lecture – 34 Single Source Shortest Paths
  35. Lecture – 35 Correctness of Dijkstra’s Algorithm
  36. Lecture – 36 Single Source Shortest Paths

Click here to download all PDFs to his lecture documentation.

2. MyCodeSchool

1. Pointers in C/C++

Pointers are 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 leaks in C/C++

2. Data structures

This series of lessons covers Data Structures. Data structures are implemented in C or C++. Prerequisite 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

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

This course strictly follows CLRS book and one of the instructors 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 traditionally. 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 🙂