The Come Up provides a simple 3 part study strategy to learn data structures and algorithms.

Timestamps

• 0:00 – Intro
• 2:01 – Take Data Structures Class
• 3:10 – Note Taking Tips
• 5:38 – Sponsorship
• 6:28 – Flashcards (Spaced Repetition)
• 7:34 – Practice (using Leetcode)

Learn all about Data Structures in this lecture-style course from freeCodeCamp.org

You will learn what Data Structures are, how we measure a Data Structures efficiency, and then hop into talking about 12 of the most common Data Structures which will come up throughout your Computer Science journey.

Course Contents

• (00:00) Introduction
• (01:06) Timestamps
• (01:23) Script and Visuals
• (01:34) References + Research
• (01:56) Questions
• (02:12) Shameless Plug
• (02:51) What are Data Structures?
• (04:36) Series Overview
• (06:55) Measuring Efficiency with BigO Notation
• (09:45) Time Complexity Equations
• (11:13) The Meaning of BigO
• (12:42) Why BigO?
• (13:18) Quick Recap
• (14:27) Types of Time Complexity Equations
• (19:42) Final Note on Time Complexity Equations
• (20:21) The Array
• (20:58) Array Basics
• (22:09) Array Names
• (22:59) Parallel Arrays
• (23:59) Array Types
• (24:30) Array Size
• (25:45) Creating Arrays
• (26:11) Populate-First Arrays
• (28:09) Populate-Later Arrays
• (30:22) Numerical Indexes
• (31:57) Replacing information in an Array
• (32:42) 2-Dimensional Arrays
• (35:01) Arrays as a Data Structure
• (42:21) Pros and Cons
• (43:33) The ArrayList
• (44:42) Structure of the ArrayList
• (45:19) Initializing an ArrayList
• (47:34) ArrayList Functionality
• (49:30) ArrayList Methods
• (50:26) Add Method
• (53:57) Remove Method
• (55:33) Get Method
• (55:59) Set Method
• (56:57) Clear Method
• (57:30) toArray Method
• (59:00) ArrayList as a Data Structure
• (1:03:12) Comparing and Contrasting with Arrays
• (1:05:02) The Stack
• (1:05:06) The Different types of Data Structures
• (1:05:51) Random Access Data Structures
• (1:06:10) Sequential Access Data Structures
• (1:07:36) Stack Basics
• (1:09:01) Common Stack Methods
• (1:09:45) Push Method
• (1:10:32) Pop Method
• (1:11:46) Peek Method
• (1:12:27) Contains Method
• (1:13:23) Time Complexity Equations
• (1:15:28) Uses for Stacks
• (1:18:01) The Queue
• (1:18:51) Queue Basics
• (1:20:44) Common Queue Methods
• (1:21:13) Enqueue Method
• (1:22:20) Dequeue Method
• (1:23:08) Peek Method
• (1:24:15) Contains Method
• (1:25:05) Time Complexity Equations
• (1:27:05) Common Queue Uses
• (1:28:16) The Linked List
• (1:31:37) LinkedList Visualization
• (1:33:55) Adding and Removing Information
• (1:41:28) Time Complexity Equations
• (1:44:26) Uses for LinkedLists
• (1:47:19) The Doubly-LinkedList
• (1:48:44) Visualization
• (1:50:56) Adding and Removing Information
• (1:58:30) Time Complexity Equations
• (1:59:06) Uses of a Doubly-LinkedList
• (2:00:21) The Dictionary
• (2:01:15) Dictionary Basics
• (2:02:00) Indexing Dictionaries
• (2:02:40) Dictionary Properties
• (2:05:53) Hash Table Mini-Lesson
• (2:13:26) Time Complexity Equations
• (2:16:39) Trees
• (2:16:55) Introduction to Hierarchical Data
• (2:18:54) Formal Background on the Tree
• (2:20:03) Tree Terminology and Visualization
• (2:25:08) Different types of Trees
• (2:28:07) Uses for the Tree
• (2:29:00) Tries
• (2:29:50) Trie Basics
• (2:30:41) Trie Visualization
• (2:34:33) Flagging
• (2:35:15) Uses for Tries
• (2:38:25) Heaps
• (2:38:51) Heap Basics
• (2:39:19) Min-Heaps
• (2:40:07) Max-Heaps
• (2:40:59) Building Heaps
• (2:44:20) Deleting from Heaps
• (2:46:00) Heap Implementations
• (2:48:15) Graphs
• (2:49:25) Graph Basics
• (2:52:04) Directed vs. Undirected Graphs
• (2:53:45) Cyclic vs. Acyclic Graphs
• (2:55:04) Weighted Graphs
• (2:55:46) Types of Graphs
• (2:58:20) Conclusion
• (2:58:43) Shameless Plug

This full 6 hour+ course provides a complete introduction to Graph Theory algorithms in computer science.

Course created by William Fiset. Check out his YouTube channel: https://www.youtube.com/channel/UCD8yeTczadqdARzQUp29PJw

⭐️ Course Contents ⭐️
⌨️ (0:00:00) Graph Theory Introduction
⌨️ (0:13:53) Problems in Graph Theory
⌨️ (0:23:15) Depth First Search Algorithm
⌨️ (0:33:18) Breadth First Search Algorithm
⌨️ (0:40:27) Breadth First Search grid shortest path
⌨️ (0:56:23) Topological Sort Algorithm
⌨️ (1:09:52) Shortest/Longest path on a Directed Acyclic Graph (DAG)
⌨️ (1:19:34) Dijkstra’s Shortest Path Algorithm
⌨️ (1:43:17) Dijkstra’s Shortest Path Algorithm | Source Code
⌨️ (1:50:47) Bellman Ford Algorithm
⌨️ (2:05:34) Floyd Warshall All Pairs Shortest Path Algorithm
⌨️ (2:20:54) Floyd Warshall All Pairs Shortest Path Algorithm | Source Code
⌨️ (2:29:19) Bridges and Articulation points Algorithm
⌨️ (2:49:01) Bridges and Articulation points source code
⌨️ (2:57:32) Tarjans Strongly Connected Components algorithm
⌨️ (3:13:56) Tarjans Strongly Connected Components algorithm source code
⌨️ (3:20:12) Travelling Salesman Problem | Dynamic Programming
⌨️ (3:39:59) Travelling Salesman Problem source code | Dynamic Programming
⌨️ (3:52:27) Existence of Eulerian Paths and Circuits
⌨️ (4:01:19) Eulerian Path Algorithm
⌨️ (4:15:47) Eulerian Path Algorithm | Source Code
⌨️ (4:23:00) Prim’s Minimum Spanning Tree Algorithm
⌨️ (4:37:05) Eager Prim’s Minimum Spanning Tree Algorithm
⌨️ (4:50:38) Eager Prim’s Minimum Spanning Tree Algorithm | Source Code
⌨️ (4:58:30) Max Flow Ford Fulkerson | Network Flow
⌨️ (5:11:01) Max Flow Ford Fulkerson | Source Code
⌨️ (5:27:25) Unweighted Bipartite Matching | Network Flow
⌨️ (5:38:11) Mice and Owls problem | Network Flow
⌨️ (5:46:11) Elementary Math problem | Network Flow
⌨️ (5:56:19) Edmonds Karp Algorithm | Network Flow
⌨️ (6:05:18) Edmonds Karp Algorithm | Source Code
⌨️ (6:10:08) Capacity Scaling | Network Flow
⌨️ (6:19:34) Capacity Scaling | Network Flow | Source Code
⌨️ (6:25:04) Dinic’s Algorithm | Network Flow
⌨️ (6:36:09) Dinic’s Algorithm | Network Flow | Source Code

I’ve been hearing the term “graph” more and more lately.

Whether it’s the Microsoft Graph mentioned repeatedly in the Ingite 2017 keynotes or the Graph features available in CosmosDB, it’s a common type of non-linear data structure.

If you want to know the particulars, then watch this great explainer video by mycodeschool.