Skip to content

Interactive DSA labs

Learn data structures by watching them change.

Each lab runs real code one line at a time and draws exactly what that line does to memory: which pointer moves, which node is created, what becomes garbage.

Topics

  1. 01Graph Representation LabBuild the same graph as an edge list, an adjacency matrix and an adjacency list, and see what each one costs to store and to query.PythonEdge listAdjacency matrixAdjacency listDirectedUndirectedOpen lab →
  2. 02Heap LabWatch a min heap and a max heap live in one array: insert with sift-up, delete the root with sift-down, and see why heapify is O(n).PythonMin heapMax heapInsertDeleteHeapifyOpen lab →
  3. 03Linked List LabStep through singly and doubly linked list operations line by line and watch exactly which pointer each line of Python changes.PythonTraversePrependAppendInsertRemoveFindReversePopOpen lab →
  4. 04Dijkstra's Algorithm LabWatch Dijkstra find the shortest path from one vertex to every other: the priority queue, the distance table and each edge relaxation, one step at a time.PythonShortest pathheapqRelaxationPath rebuildNegative edgesOpen lab →
  5. 05Binary Search Tree LabCode a BST from scratch: insert, search and delete, the three depth-first traversals, and the max height of the tree.PythonInsertSearchDeletePreorderInorderPostorderMax heightOpen lab →
  6. 06Trie LabStore words letter by letter in a prefix tree. Step through insert, search and prefix lookup, then match words with wildcards.PythonInsertSearchStarts withWord matcherAutocompleteOpen lab →
  7. 07Binary Numbers LabSee how a number becomes binary: divide by two and read the remainders, place values, converting back, and the bit operators that do it fast.PythonDecimal to binaryBinary to decimalBit shiftsBitwise AND/OROpen lab →
  8. 08More topics on the way.