Data Structures in Python

Build data structures from the ground up and analyze how they implement common interfaces.

18 Lessons180 Exercises

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)

Course description

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.

Topics covered

  • Word-RAM Model of Memory
  • Data Structures and Interfaces
  • Arrays
  • Pointers
  • Linked lists
  • Memory allocation
  • Search
  • Insert
  • Delete
  • Big-O notation
  • Amortized analysis

Prerequisites and next steps

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.