Skip to main content

Reference

Use this page only when a concept page has failed you. The primary path is concept page -> practice -> quiz; reference is the rescue path.

Source Roles

  • CLRS (primary): canonical proofs for red-black trees, union-find, amortized analysis, dynamic tables. Use when you need a theorem with a proof, not a recipe.
  • Sedgewick: implementation-first companion. Useful when CLRS pseudocode is ambiguous and you want concrete pointer manipulations.
  • Skiena: pragmatic decisions. Use to choose between competing structures for an engineering situation, or to quickly survey what exists.
  • Competitive Programming (Halim & Halim): contest-shaped recipes for union-find, segment tree, Fenwick tree. Use when you need a working implementation fast.
  • Grokking Algorithms: low-floor re-entry. Use on days your brain refuses to work; come back later for the formal text.
  • Papers / lectures (external): only for topics the book stack genuinely lacks - Fibonacci heaps, skip lists, pairing heaps, persistence, succinct/cache-oblivious structures.

Read This Only If Stuck - by Cluster

Cluster 1 - Balanced BSTs

Cluster 2 - Union-Find

Cluster 3 - Advanced Heaps

  • Stuck on what a binomial heap looks like:
  • Stuck on why Fibonacci heap is O(1) amortized for decrease-key:
    • See resources.md -> Fredman & Tarjan 1987, MIT OCW 6.046J.
  • Stuck on pairing heap:

Cluster 4 - Amortized Analysis

Cluster 5 - Randomized, Persistent, Succinct

Optional Deep Dive

Read only if the core material is locked.

  • Dynamic connectivity with link/cut trees (beyond incremental): Tarjan, Data Structures and Network Algorithms.
  • Splay trees as a self-adjusting alternative: Sleator and Tarjan, "Self-Adjusting Binary Search Trees", JACM 1985.
  • Persistent red-black trees in Haskell: Okasaki, Purely Functional Data Structures, Chapters 3-4.
  • Cache-oblivious B-trees: Bender, Demaine, Farach-Colton, "Cache-Oblivious B-Trees", FOCS 2000.
  • Wavelet trees and rank/select: Navarro, Compact Data Structures, 2016.

Concept-to-Source Map

ConceptPrimary sourceBackup source
01 BST propertyCLRS Ch. 12Sedgewick 055-balanced-trees
02 Red-Black treesCLRS 13.1-13.4Sedgewick 055-balanced-trees
03 AVL treesSedgewick 056-balanced-treesexternal (Knuth TAOCP vol 3)
04 Skip listsPugh 1990 (external)Sedgewick 014-random-numbers
05 Union-Find (naive)CLRS 19.1-19.2Competitive Programming 029-2-4-2
06 Rank + path compressionCLRS 19.3-19.4Tarjan 1975 (external)
07 Kruskal and dynamic connectivityCLRS 21.2Competitive Programming 069-4-3
08 Binomial heapsexternal (Vuillemin 1978)Sedgewick 039-priority-queues
09 Fibonacci heapsexternal (Fredman-Tarjan 1987)MIT OCW 6.046J
10 Pairing heapsexternal (FSST 1986)Skiena 286-pairing-heap
11 Why amortizedCLRS Chapter 16 intro-
12 Aggregate methodCLRS 16.1 + 16.4-
13 Accounting methodCLRS 16.2 + 16.4-
14 Potential methodCLRS 16.3 + 16.4-
15 Randomized DSSedgewick 014-random-numbersCompetitive Programming 024-2-3
16 Bloom filtersGrokking Algorithms Ch. 11Bloom 1970 (external), hur.st calculator
17 Segment / FenwickCompetitive Programming 030, 031CP-Algorithms (external)
18 Persistent DSexternal (Okasaki, DSST 1989)-
19 Succinct / cache-obliviousexternal (Jacobson 1989, FLPR 1999)-

When You've Exhausted Everything

If after consulting the concept page, its "stuck" links, and the resources here you are still stuck, escalate in this order:

  1. Revisit the prerequisite concept page within the same cluster.
  2. Redo the retrieval prompts in the corresponding practice/ page from memory.
  3. Pose the specific stuck-point as a single question to a study group or forum.
  4. Only then try to skim a second external source; stop after 20 minutes and return to the book.