
Build data structures from the ground up and analyze how they implement common interfaces.
Modeling Memory
Arrays
Implementing a Set
Deleting from an Array
Inserting into an Array
Level Review
Pointers
Linked Lists
Searching a Linked List
Deleting from a Linked List
Inserting into a Linked List
Level Review
Memory Management
Estimating Runtime
Comparing Efficiency
Amortizing Cost
Level Review
Searching a Sorted Array
Improving Efficiency
Deleting from a Sorted Array
Inserting into a Sorted Array
Level Review
Tree Structures
(Coming soon)
Searching a BST
(Coming soon)
Inserting into a BST
(Coming soon)
Deleting from a BST
(Coming soon)
Balancing BSTs
(Coming soon)
In this course you will build and compare data structures in Python, starting from a simple model of computer memory to understand how data is stored, accessed, and organized. Along the way, you will learn how pointers and memory allocation work, how data structures support common interfaces, and how to measure efficiency using Big-O notation and amortized analysis.
This course is ideal if you're comfortable with loops, lists, functions, and objects in Python. Use it to understand how data structures work at a fundamental level and learn to reason about the correctness and efficiency of your code.