# 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

## MyCodeSchool

#### 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
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
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 –

All the very best 🙂

Subscribe
Notify of
Guest
jasonkostempski

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:

Guest
hackermailman

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.

Guest

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:

https://www.coursera.org/specializations/algorithms

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

Guest
henderson

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.

Guest

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.