// curriculum · 12 lessons · built for the thumb

[data structures]

From a row of numbered lockers to self-balancing trees. Every lesson opens with an interactive demo you can poke — push, pop, walk, hash, rotate — and the prose lives below the demo, not in front of it.

·

Refresher

  1. #00

    Big-O complexity

    How fast does the work grow when the input grows?

    read
    primer
    write
    layout
    asymptotic
01

Lessons

  1. #01

    Arrays

    Contiguous memory — index access in one CPU cycle

    read
    O(1)
    write
    O(n)
    layout
    contiguous
  2. #02

    Linked Lists

    Nodes scattered through memory, stitched by pointers

    read
    O(n)
    write
    O(1)*
    layout
    scattered
  3. #03

    Stacks

    LIFO — newest in, newest out

    read
    O(1)
    write
    O(1)
    layout
    LIFO
  4. #04

    Queues

    FIFO — fair order, every time

    read
    O(1)
    write
    O(1)
    layout
    FIFO
  5. #05

    Binary Trees

    One node, two children — every recursive data structure

    read
    O(n)
    write
    O(1)
    layout
    hierarchy
  6. #06

    Binary Search Trees

    Order in, log-time out

    read
    O(log n)
    write
    O(log n)
    layout
    ordered
  7. #07

    Heaps & Priority Queues

    Array-backed, log-time min — the engine of priority queues

    read
    O(1)
    write
    O(1)
    layout
    FIFO
  8. #08

    Hash Tables

    djb2 hash → bucket index → average O(1)

    read
    O(1)*
    write
    O(1)*
    layout
    bucketed
  9. #09

    Graphs

    Vertices and edges — the universal abstraction

    read
    O(V+E)
    write
    varies
    layout
    edges
  10. #10

    Balanced Trees

    Rotations keep height ≈ log n, no matter the insert order

    read
    O(log n)
    write
    O(log n)
    layout
    self-rotating
  11. #11

    Dynamic Programming

    Trade memory for time — solve once, remember forever

    read
    O(1)*
    write
    tabulate
    layout
    O(n·m)