Data PRO or PayPerCourse
Pick a plan that right's for you!
Course curriculum

1
1What this course is about

2
2Data Structures And Algorithms  A Symbiotic Relationship

3
3Complexity Analysis and the BigO Notation

4
4Linked Lists

5
5Stacks And Queues

6
6Sorting and Searching

7
7Binary Trees

8
8Binary Search Trees

9
9Binary Tree Problems

10
10Heaps

11
11Revisiting Sorting  The Heap Sort

12
12Heap Problems

13
13Graphs

14
14Graph Algorithms

15
15Shortest Path Algorithms

16
16Spanning Tree Algorithms

17
17Graph Problems

You, This course and Us 
2. Why are data structures and algorithms important ? DOWNLOADS 
3. Performance and Complexity 4. The BigO Notation 5. What is the complexity of these pieces of code? DOWNLOADS 
6. The Linked List  The Most Basic Of All Data Structures 7. Linked List Problems 8. Linked Lists vs Arrays DOWNLOADS 
9. Meet The Stack  Simple But Powerful 10. Building A Stack Using Java 11. Match Parenthesis To Check A Well Formed Expression 12. Find The Minimum Element In A Stack In Constant Time 13. Meet The Queue  A Familiar Sight In Everyday Life 14. The Circular Queue  Tricky But Fast 15. Build A Queue With Two Stacks DOWNLOADS 
16. Sorting TradeOffs 17. Selection Sort 18. Bubble Sort 19. Insertion Sort 20. Shell Sort 21. Merge Sort 22. Quick Sort 23. Binary Search  search quickly through a sorted list DOWNLOADS 
24. Meet The Binary Tree  A Hierarchical Data Structure 25. Breadth First Traversal 26. Depth First  PreOrderTraversal 27. Depth First  InOrder and PostOrder Traversal DOWNLOADS 
28. The Binary Search Tree  an introduction 29. Insertion and Lookup in a Binary Search Tree DOWNLOADS 
30. Minimum Value, Maximum Depth And Mirror 31. Count Trees, Print Range and Is BST DOWNLOADS 
32. The Heap Is Just The Best Way to Implement a Priority Queue 33. Meet The Binary Heap  It's A Tree At Heart 34. The Binary Heap  Logically A Tree Really An Array 35. The Binary Heap  Making It Real With Code 36. Heapify! 37. Insert And Remove From A Heap DOWNLOADS 
38. Heap Sort Phase I  Heapify 39. Heap Sort Phase II  The Actual Sort DOWNLOADS 
40. Maximum Element In A Minimum Heap and K Largest Elements In A Stream DOWNLOADS 
41. Introducing The Graph 42. Types Of Graphs 43. The Directed And Undirected Graph 44. Representing A Graph In Code 45. Graph Using An Adjacency Matrix 46. Graph Using An Adjacency List And Adjacency Set 47. Comparison Of Graph Representations 48. Graph Traversal  Depth First And Breadth First DOWNLOADS 
49. Topological Sort In A Graph 50. Implementation Of Topological Sort DOWNLOADS 
51. Introduction To Shortest Path In An Unweighted Graph  The Distance Table 52. The Shortest Path Algorithm Visualized 53. Implementation Of The Shortest Path In An Unweighted Graph 54. Introduction To The Weighted Graph 55. Shortest Path In A Weighted Graph  A Greedy Algorithm 56. Dijkstra's Algorithm Visualized 57. Implementation Of Dijkstra's Algorithm 58. Introduction To The Bellman Ford Algorithm 59. The Bellman Ford Algorithm Visualized 60. Dealing With Negative Cycles In The Bellman Ford Algorithm 61. Implementation Of The Bellman Ford Algorithm DOWNLOADS 
62. Prim's Algorithm For a Minimal Spanning Tree 63. Use Cases And Implementation Of Prim's Algorithm 64. Kruskal's Algorithm For a Minimal Spanning Tree 65. Implementation Of Kruskal's Algorithm DOWNLOADS 
66. Design A Course Schedule Considering Prereqs For Courses 67. Find The Shortest Path In A Weighted Graphs  Fewer Edges Better DOWNLOADS
Course Description
What will I learn?
 Visualise  really vividly imagine  the common data structures, and the algorithms applied to them
 Pick the correct tool for the job  correctly identify which data structure or algorithm makes sense in a particular situation
 Calculate the time and space complexity of code  really understand the nuances of the performance aspects of code
About the course
 This is an animated, visual and spatial way to learn data structures and algorithms
 Our brains process different types of information differently  evolutionarily we are wired to absorb information best when it is visual and spatial i.e. when we can close our eyes and see it
 More than most other concepts, Data Structures and Algorithms are best learnt visually. These are incredibly easy to learn visually, very hard to understand most other ways
 This course has been put together by a team with tons of everyday experience in thinking about these concepts and using them at work at Google, Microsoft and Flipkart
What's Covered
 BigO notation and complexity
 Stacks
 Queues
 Trees
 Heaps
 Graphs and Graph Algorithms
 Linked lists
 Sorting
 Searching
Who should take the course?
 Yep! Computer Science and Engineering grads who are looking to really visualise data structures, and internalise how they work
 Yep! Experienced software engineers who are looking to refresh important fundamental concepts
Prerequisites & Requirements
 Basic knowledge of programming is assumed, preferably in Java