Linear structures

Ways to keep items in a line, and what each one makes cheap: linked lists for splicing, stacks and queues for order, deques for both ends, heaps for always knowing the biggest. Each one has a live visualizer running the real code.

  1. 01Deleting from a linked listUnlink nodes by moving one pointer, with nothing to shift.O(n)
  2. 02Reversing a linked listTurn every arrow around with three pointers in one pass.O(n)
  3. 03Fast and slow pointersOne pointer moves twice as fast, so the slow one stops in the middle.O(n)
  4. 04StackLast in, first out: check that every bracket is closed in the right order.O(n)
  5. 05QueueFirst in, first out: share time fairly between tasks, round robin.O(1) per step
  6. 06DequeAdd and remove at both ends to track the maximum of a sliding window.O(n)
  7. 07Binary heapPush values into a heap and watch each one sift up to its place.O(log n)