| LEC # | TOPICS | LECTURE NOTES |
|---|---|---|
| 1 | Dynamic optimality: binary search trees, analytic bounds, splay trees, geometric view, greedy algorithm | (PDF) |
| 2 | Dynamic optimality: independent rectangle, Wilber, and Signed Greedy lower bounds; key-independent optimality; O(lg lg n)-competitive Tango trees | (PDF) |
| 3 | Geometric data structures: orthogonal range queries, range trees, fractional cascading | (PDF) |
| 4 | Geometric data structures: stabbing queries, interval trees, segment trees, priority search trees, windowing |
(PDF) (PDF) |
| 5 | Geometric data structures: kinetic data structures and ray shooting (1) | (PDF) |
| 6 | Geometric data structures: ray shooting (2), partition trees | (PDF) |
| 7 | Strings: suffix tree, suffix array, document retrieval | (PDF) (Courtesy of Mark Chen. Used with permission.) |
| 8 | Strings: level ancestor, static LCA (part 1) | (PDF) |
| 9 |
Strings: static LCA (part 2) Integers: van Emde Boas, y-fast trees | (PDF) |
| 10 | Integers: fusion trees | (PDF) |
| 11 | Integers: predecessor lower bound via round elimination | (PDF) |
| 12 | Integers: sorting in linear time for w = O(lg2+ε n), priority queues | (PDF) |
| 13 | Integers: tree decompositions, marked ancestor upper bound, decremental connectivity in trees | (PDF) |
| 14 | Dictionaries: FKS and cuckoo hashing | (PDF) |
| 15 | Dictionaries: deterministic dictionaries | |
| 16 | Dynamic graphs: dynamic trees (link-cut trees) | (PDF) |
| 17 | Dynamic graphs: overview, Euler tour trees, dynamic connectivity in O(lg2n) | (PDF) |
| 18 | Dynamic graphs: Ω(lg n) lower bound for dynamic connectivity | (PDF) |
| 19 | Temporal data structures: persistence, retroactivity | (PDF) |
| 20 | External memory / cache-oblivious: models, B-trees | (PDF) |
| 21 | External memory / cache-oblivious: ordered-file maintenance, list labeling, order queries, priority queues | (PDF) |
| 22 | Succinct data structures: rank, select, tries | (PDF) |
| 23 | Succinct data structures: compact suffix arrays and trees | (PDF) |




