Essential:

  1. Hash Maps
  2. Hash functions - from min 16:30 to 39:40
  3. Introduction to Data Structures and Algorithms - from min 25:30 to 39:00
  4. Trees Introduction
  5. Trees, Binary Trees, BST, Traversal Algorithms
  6. What is a Binary Tree - from min 4:00 to min 16:30
  7. Binary Tree and Binary Search Tree - from min 16:30
  8. Binary Search Tree (cont.) and AVL Tree - Optional part from 36:20 to 44:06
  9. Merge Sort - from min 41:22
  10. Quick Sort - YouTube Video 2
  11. Priority Queues, Binary Heap and Heap Sort
  12. Linear Sorting
  13. Radix Sort
  14. Graph definitions - from min 2:0 to min 20:55
  15. Graph representations - from min 20:55 to 26:35
  16. Paths and BFS - from min 26:35 to min 52:52
  17. DFS - from min 6:40 to min 33:29
  18. Topological Sort - from min 33:29 to min 52:22
  19. Dijkstra Algorithm - Optional but highly recommended from 39:49 to 50:54
  20. Memoization and Dynamic Programming
  21. Dynamic Programming - until 20:50
  22. Greedy Method - until 5:30
  23. Pattern Matching - Brute Force
  24. Pattern Matching - Knuth-Morris-Pratt (KMP)
  25. Pattern Matching - Boyer Moore
  26. Tries

Optional:

  1. Introduction to Data Structures and Algorithms
  2. Recursion
  3. Algorithm Analysis
  4. Merge Sort - YouTube Video 1
  5. Merge Sort - YouTube Video 2
  6. Quick Sort
  7. Priority Queues
  8. Heaps
  9. Heap Sort
  10. Introduction to Graphs
  11. Graph Search, BFS and DFS
  12. Shortest Paths
  13. Strings, Tries, Compressed Tries - Optional but highly recommended
  14. Solve Contacts Using Tries
  15. Check if a tree is a BST