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 –

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

Click here to download all PDFs to his lecture documentation.



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 –

Introduction to pointers in C/C++ Working with pointers Pointer types, pointer arithmetic, void pointers Pointers to Pointers in C/C++ Pointers as function arguments – call by reference Pointers and arrays Arrays as function arguments Character arrays and pointers – part 1 Character arrays and pointers – part 2 Pointers and 2-D arrays Pointers and multidimensional arrays Pointers and dynamic memory – stack vs heap Dynamic memory allocation in C – malloc calloc realloc free Pointers as function returns in C/C++ Function Pointers in C / C++ Function pointers and callbacks 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 –

Introduction to data structures Data Structures: List as abstract data type Introduction to linked list Data Structures: Arrays vs Linked Lists Linked List – Implementation in C/C++ Linked List in C/C++ – Inserting a node at beginning Linked List in C/C++ – Insert a node at nth position Linked List in C/C++ – Delete a node at nth position Reverse a linked list – Iterative method Print elements of a linked list in forward and reverse order using recursion Reverse a linked list using recursion Data structures: Introduction to Doubly Linked List Doubly Linked List – Implementation in C/C++ Data structures: Introduction to stack Data structures: Array implementation of stacks Data Structures: Linked List implementation of stacks Reverse a string or linked list using stack. Check for balanced parentheses using stack Infix, Prefix and Postfix Evaluation of Prefix and Postfix expressions using stack Infix to Postfix using stack Data structures: Introduction to Queues Data structures: Array implementation of Queue Data structures: Linked List implementation of Queue Data structures: Introduction to Trees Data structures: Binary Tree Data structures: Binary Search Tree Binary search tree – Implementation in C/C++ BST implementation – memory allocation in stack and heap Find min and max element in a binary search tree Find height of a binary tree Binary tree traversal – breadth-first and depth-first strategies Binary tree: Level Order Traversal Binary tree traversal: Preorder, Inorder, Postorder Check if a binary tree is binary search tree or not Delete a node from Binary Search Tree Inorder Successor in a binary search tree Data structures: Introduction to graphs Data structures: Properties of Graphs Graph Representation part 01 – Edge List Graph Representation part 02 – Adjacency Matrix

3. Sorting Algorithms

This series of lessons covers and analyze various sorting algorithms.



Playlist Details –

Introduction to sorting algorithms Selection sort algorithm Bubble sort algorithm Insertion sort algorithm Merge sort algorithm Analysis of Merge sort algorithm Quicksort algorithm Analysis of quicksort

4. Binary Search

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



Playlist Details –

What is binary search Binary Search – Iterative Implementation and common errors Binary Search – Recursive implementation Binary search – finding first or last occurrence of a number Count occurrences of a number in a sorted array with duplicates using Binary Search How many times is a sorted array rotated? 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 –

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



Sharing is caring: Tweet





