Explore · Step through · Practice

Data Structures & Algorithms Lab

Explore how algorithms work, one decision at a time. Find a topic, open a demonstration, and experiment with its inputs and operations.

16 demonstrations across 7 topics

Showing all 16 demonstrations

Each lab opens in this tab.

Foundations

Explore abstract data types and ways to approach algorithmic problems.

Implementations · Cost comparisons

ADT Explorer

Compare lists, stacks, queues, maps, sets, and priority queues across implementations.

Open lab

Misc. data structures

Explore hashing, collision handling, and storage and operation choices.

Trees

Explore priority queues, search trees, traversals, and balancing.

DSA II · LL, RR, LR & RL

AVL Rotation Lab

Explore insertion, deletion, and search with bottom-up balance checks and separate rotation steps.

Open lab

Graphs

Explore traversal, representation choices, and shortest-path decisions.

Queues · Call stacks · Traversal forests

BFS & DFS Graph Explorer

Follow discovery, neighbor checks, and completion using BFS and recursive DFS on the same editable graph.

Open lab

Sparse & dense · Storage & operation costs

Graph Representation Lab

Compare adjacency matrices and lists on the same graph, then inspect edge lookups and neighbor scans.

Open lab

Sorting

Watch sorting algorithms run, or practice arranging the cards yourself.

Algorithm analysis

Explore asymptotic bounds and the work performed by recursive algorithms.

O, Θ & Ω · Constants & thresholds

Asymptotic Bounds Lab

Compare growth functions and adjust bound constants while separating finite evidence from asymptotic claims.

Open lab

Case studies

Start with a specific problem and compare algorithm choices and solution strategies.

Compression · Prefix codes

Huffman Coding

Build a prefix-code tree through successive merges, inspect codes, and encode a message.

Open lab

Packing heuristics · Online & offline

Bin Packing

Compare online packing rules with decreasing-order offline variants using unit-capacity bins.

Open lab