Skip to content
AITroveRead. Build. Understand.

Data Structures

Choose storage and access patterns by invariants, time, space, and update workload.

A data structure defines which operations are cheap, which are costly, and which invariants must stay true after mutation. Start with the workload: indexed reads, ordered updates, keyed lookup, priority selection, connectivity, or repeated range queries. Then compare time, memory, and failure behavior rather than choosing by name alone.

Arrays

Indexed storage, range summaries, and growth costs.

Linked Lists

Pointer changes, traversal, and node ownership.

Stacks and Queues

Ordering contracts for undo, buffering, and scheduling.

Hashing

Keyed lookup, collisions, and membership.

Trees and Heaps

Hierarchical search and priority order.

Graphs

Adjacency, traversal, and connectivity.

Range Queries

Point updates and repeated interval queries.

Projects

Combine structures under an operation contract.

Quizzes

Check invariants and cost claims.

LRU caches: couple keyed lookup to recency order

AVL trees: restore height balance after insertion

CSR graphs: pack sparse neighbors for repeated scans

Sparse tables: precompute immutable range minima

Bloom filters: reject absent keys without claiming exact membership

Sparse sets: constant-time membership for bounded integer IDs

Skip lists: randomized levels over an ordered bottom chain

B+ leaf pages: split full pages and keep range order

Persistent segment trees: retain old range-sum versions

Monotonic deques: maintain a sliding minimum in linear time

Project: design a versioned warehouse index

Advanced structure contracts

Red-black trees: audit color and black-height invariants

B-trees: split full pages during ordered insertion

Interval trees: prune overlap search with subtree maximums

Compressed tries: split shared edge labels at the divergence

Bounded thread queues: separate FIFO removal from task completion

Project: own a maintenance index and work queue

Index and queue invariants

Red-black insertion: rotate and recolor an ordered index

B+ trees: propagate leaf splits through multiple levels

Balanced interval indexes: rotate height and maximum metadata together

Compressed tries: delete exact keys and merge unused edges

Project: test mutation invariants across four indexes

Mutation and versioning contracts

B+ deletion: borrow, merge, and repair separators

Indexed binary heaps: decrease a queued priority

Open-addressed hash tables: tombstones and rebuilds

Dependency graphs: topological order and cycle rejection

Project: release a warehouse plan after indexed mutations

Deletion, priority, and dependency checks

Red-black deletion: move color before removing a key

AVL interval deletion: repair balance and maximum endpoints

Disjoint-set rollback: restore an earlier connectivity checkpoint

Shortest routes: skip stale min-heap entries

Project: test depot rollback, routes, and ordered deletion

Tree deletion, rollback, and route checks

Offline connectivity: edge lifetimes and rollback unions

Bounded queues: close, wake waiters, and drain accepted work

Index snapshots: publish related maps as one in-memory version

Page journals: replay committed index changes

Project: plan a reversible depot release

Offline connectivity, queue, snapshot, and recovery checks

Online connectivity: answer after each edge change

Persistent ordered indexes: copy search paths, share subtrees

Framed journals: detect a torn tail before replay

CAS queue protocol: link, help, and reclaim safely

Project: audit a live depot index and recovery path

Online routes, persistent roots, journals, and CAS checks

Failure-linked tries: find overlapping alert terms in one scan

Suffix arrays: indexed substring search and adjacent LCP

K-d trees: exact nearest depot with plane pruning

Count-min sketches: bounded-memory event estimates

Project: search incident text and count event pressure

Pattern, spatial, and frequency index checks

Circular linked lists: keep one tail and a valid cycle

Binary-tree traversals: four orders without recursion

Dense graph bitsets: adjacency and common neighbors

AVL order statistics: maintain subtree sizes for rank and select

Project: audit dispatch order and dense depot links

Circular lists, traversal, bitsets, and rank checks

Sparse coordinate segment tree: allocate only visited paths

Wavelet tree: subarray counts and order statistics

Parity disjoint set: maintain same-or-different constraints

Implicit treap: edit positions and reverse a range

Project: audit sparse readings and task constraints

Sparse sums, quantiles, parity, and sequence edits

Bitvector rank and select: count and locate set bits

Heavy-light decomposition: sum weights along a tree path

Sorted runs and tombstones: model an LSM read path

Project: audit incident flags, depot paths, and sorted runs

Bit rank, depot paths, and sorted-run contracts

Lazy segment tree: add to a range and query its minimum

Binary lifting: ancestors and common managers

Two-dimensional Fenwick tree: update cells and sum rectangles

Robin Hood hashing: probe distance and backward-shift deletion

Project: audit capacity ranges and warehouse indexes

Lazy ranges, ancestors, grids, and hash probes

Link-cut forests: change tree edges and sum a path

Suffix automata: index substrings as text arrives

Piece tables: edit text through source spans

Project: audit a depot forest and incident notes

Forest paths, online substrings, and text pieces

Cuckoo hashing: relocate keys and recover from cycles

Packed R-tree: search intersecting depot rectangles

Binary tries: choose a maximum-XOR fingerprint

Project: audit asset IDs and depot zones

Cuckoo slots, spatial boxes, and bit trie paths

Two Fenwick trees: add across ranges and query sums

Merkle trees: verify an indexed scan record

Two heaps: maintain an exact running median

Project: audit capacity, medians, and scan integrity

Range corrections, hash proofs, and median heaps

Square-root blocks: update one capacity and sum a range

Merge-sort trees: count readings below a threshold in one interval

Disjoint sparse tables: immutable sums with constant-time queries

Li Chao trees: minimum linear tariff at a chosen quantity

Project: audit four range-query workloads

Block, threshold, disjoint, and line index contracts

Coordinate compression: preserve order with dense integer ranks

Fenwick frequency index: select the kth stored key

Mo ordering: count distinct scan codes across an offline query batch

Two-dimensional prefixes: constant-time static rectangle sums

Project: audit ranks, windows, and grid reports

Coordinate ranks, order selection, offline windows, and grid sums

Inverted indexes: intersect sorted incident postings

Positional postings: find exact token phrases

Trigram indexes: filter and verify substring candidates

Front-coded lexicons: store shared prefixes within sorted term blocks

Project: audit incident text index contracts

Postings, positions, trigrams, and lexicon contracts

LFU caches: evict by frequency, then recency

Expiry heaps: invalidate stale TTL records on replacement

Generational slots: reject stale handles after reuse

D-ary heaps: trade shallower ascent for wider extraction

Project: audit incident retention and dispatch

Eviction, expiry, handles, and heap contracts

Misra–Gries: find frequent-item candidates in one pass

Space-Saving: ranked candidates with count bounds

HyperLogLog: estimate unique IDs with fixed registers

Reservoir sampling: keep a uniform fixed-size sample

Project: audit four bounded stream views

Frequent items, distinct counts, and stream samples

Counting Bloom filters: delete only a known insertion

Scalable Bloom filters: grow without discarding old members

Blocked Bloom filters: localize probes and watch skew

Cuckoo filters: relocate compact fingerprints safely

Project: audit approximate-membership mutations

Approximate membership under mutation

Pairing heaps: meld roots and pair children on removal

Binomial heaps: carry equal-degree trees during merge

Radix heaps: queue nondecreasing integer priorities

Double-ended queues: reconcile min and max heaps

Project: audit four priority-queue contracts

Priority-queue merge, monotonicity, and extremes

Spatial hash grids: move points between occupied cells

Point-region quadtrees: subdivide crowded cells

Bounding-volume hierarchies: prune box overlap searches

Morton ordering: decompose a grid window into code ranges

Project: audit moving points and static spatial boxes

Spatial grids, quadtrees, boxes, and code ranges

Gap buffers: pay when the edit cursor crosses text

Ropes: share text chunks across immutable revisions

Unrolled lists: link small blocks instead of single items

Segmented arrays: locate blocks through cumulative lengths

Project: audit text edits and blocked sequence lookups

Gap buffers, ropes, and blocked sequences

Elias–Fano: split sorted IDs into low parts and high bits

Chunked integer sets: switch sparse arrays to dense bitmaps

Gap-encoded postings: add checkpoints to bytewise seeks

Level-order unary degree tries: encode child runs as bits

Project: audit compact alert and document indexes

Compact integer sets, postings, and tries

Checkpoint arenas: reclaim a region by lifetime

Free spans: first-fit allocation and adjacent coalescing

Buddy blocks: split powers of two and reunite partners

Slab slots: reuse fixed-size pages with generation checks

Project: audit four reusable storage contracts

Arenas, free spans, buddies, and slab slots

Bitmap hash tries: copy paths for immutable alert maps

Ternary search trees: branch by character and continue prefixes

Binary radix routing: choose the longest matching prefix

Extendible hashing: split buckets through a shared directory

Project: audit four keyed-lookup structures

Hash tries, term trees, routes, and directories

CLOCK caches: revisit pages through reference bits

Segmented LRU: separate probation from protected reuse

Frequency admission: compare an arrival with an eviction victim

Hashed timing wheels: bucket incident expiries by tick

Project: audit eviction, admission, and expiry

CLOCK, segmented LRU, admission, and timer wheels

Splay Trees: Access Rotations and Join Invariants

Resident LRU-K: Evict by the Kth Recent Reference

Project: Audit Adaptive Search and Cache History

Splay trees and resident history eviction

Eytzinger arrays: store a search tree in breadth-first order

Cartesian trees: preserve sequence order under a heap minimum

Leftist heaps: keep the right spine short for meld

Potential disjoint sets: preserve numeric differences across merges

Two-dimensional range trees: count a static rectangle

Van Emde Boas trees: successor in a bounded integer universe

Scapegoat trees: rebuild a deep insertion subtree

Static XOR filters: peel a fingerprint membership index

Project: audit search layouts, range roots, melds, and numeric constraints

Check search layouts, range roots, melds, and numeric constraints

Project: audit spatial counts, bounded successors, rebuilds, and filter membership

Check spatial counts, bounded successors, rebuilds, and filter membership

Palindromic trees: index distinct palindromes as text arrives

Segment tree beats: cap a range while retaining its sum

Wavelet matrices: count frequencies and find subarray quantiles

Two-stack window aggregation: keep FIFO order under a monoid

Linear hashing: split one bucket at a time as a table grows

Compressed 2D Fenwick trees: toggle known points and count rectangles

Persistent two-list queues: fork FIFO dispatch history

Balanced-parentheses trees: encode an ordered hierarchy

Project: audit streaming palindromes, range caps, quantiles, and window order

Check streaming palindromes, range caps, quantiles, and window order

Project: audit hash splits, spatial toggles, queue versions, and tree intervals

Check hash splits, spatial toggles, queue versions, and tree intervals

BK-trees: search incident labels within edit distance

Vantage-point trees: nearest depots by a metric radius

Centroid decomposition: nearest marked depot on a fixed tree

Two-level perfect hashing: exact static case membership

FM-index backward search: narrow a suffix interval by character

Block-max postings: skip safe document-score regions

Piecewise interpolation indexes: predict a bounded rank window

Euler-tour RMQ: answer static common ancestors in constant query time

Project: audit metric searches, marked depots, and static membership

Check metric searches, marked depots, and static membership

Project: audit text intervals, score bounds, rank models, and ancestor tours

Check text intervals, score bounds, rank models, and ancestor tours

X-fast trie: predecessor and successor in a fixed integer universe

Persistent radix vectors: copy one indexed path per revision

Compressed suffix trees: locate patterns across a frozen text

Disjoint interval unions: maintain covered maintenance time

CSR delta overlays: stage road edits before compaction

Reachability bitsets: precompute directed paths for a fixed graph

Gap labels: compare dispatch order across middle inserts

Skew heaps: meld priorities by swapping child paths

Project: audit predecessor, revision, substring, and coverage snapshots

Check predecessor, revision, substring, and coverage snapshots

Project: audit graph overlays, path bits, labels, and heap ownership

Check graph overlays, path bits, labels, and heap ownership

Fibonacci heaps: cut on decrease and consolidate on removal

Tournament trees: merge sorted runs through one winner path

Priority search trees: report events in a three-sided region

Reduced ordered decision diagrams: share identical rule branches

LZ78 phrase tries: emit dictionary index and next symbol

Segment-tree stabbing indexes: list intervals active at one point

Huffman trees: assign prefix codes from symbol frequencies

Condensation DAGs: compress directed cycles before path queries

Project: audit heap repairs, run winners, spatial pruning, and rules

Check heap repairs, run winners, spatial pruning, and rules

Project: audit phrase codes, active intervals, prefix bits, and routes

Check phrase codes, active intervals, prefix bits, and routes

Ordered treaps: split, join, and select depot keys

Span skip lists: rank and select without a full scan

Two-dimensional segment trees: correct sensors and sum rectangles

Range-majority indexes: verify a candidate before returning it

Alias tables: constant-work draws from fixed dispatch weights

MinHash bands: retrieve incident candidates, then check exact overlap

Run-length bitmaps: union, intersect, and subtract alert spans

Project: audit ordered ranks, grid corrections, and majority windows

Check ordered ranks, grid corrections, and majority windows

Project: audit weighted draws, incident candidates, and alert spans

Check weighted draws, incident candidates, and alert spans

Moveable disjoint sets: transfer one shipment without splitting its old tree

Block-cut indexes: separate articulation depots from cyclic road blocks

Kruskal reconstruction trees: answer route bottlenecks through merge ancestors

Zero-suppressed diagrams: share sparse dispatch set families

Count Sketch: estimate signed incident frequencies with row medians

Exponential histograms: estimate failures in a recent event window

Range-mode indexes: combine complete-block modes with fringe candidates

Project: audit member moves, cut depots, bottlenecks, and set families

Check member moves, cut depots, bottlenecks, and set families

Project: audit signed sketches, recent windows, and exact range modes

Check signed sketches, recent windows, and exact range modes

Double-array tries: static incident-code transitions with BASE and CHECK

Hopscotch hashing: keep each shipment near its home bucket

Invertible Bloom tables: peel differences between replica ID sets

De Bruijn graphs: compact non-branching k-mer routes into unitigs

Project: audit static prefixes, neighborhood placement, replica differences, and unitigs

Check prefix, neighborhood, replica, and unitig contracts

Adaptive radix trees: grow byte-edge nodes as incident codes branch

Bit-sliced indexes: filter and sum fixed-width sensor readings

SimHash bands: find near-duplicate incident fingerprints

Minimal acyclic dictionaries: merge equivalent word suffix states

Project: audit adaptive nodes, bit slices, fingerprint bands, and shared word states

Check adaptive nodes, bit slices, SimHash, and acyclic word states

Persistent range MEX: search last occurrences in prefix versions

Range XOR bases: merge linear spans in a segment tree

Affine lazy segment trees: compose range calibration before summing

Min-max heaps: remove either end of one dispatch priority array

Project: audit range MEX, XOR spans, calibration sums, and priority ends

Check range MEX, XOR spans, affine updates, and priority ends

Persistent subarray ranks: subtract prefix frequency trees

Maximum-subarray segment trees: preserve the crossing burst

Li Chao interval offers: limit each line to its valid minutes

All-one frequency buckets: increment, decrement, and read both extremes

Patricia binary routing: compress chains without losing prefix matches

Project: audit ranks, bursts, tariffs, count extremes, and routes

Check persistent ranks, fault bursts, tariff offers, counts, and routes

Successor disjoint sets: skip permanently retired slots

Persistent range-distinct counts: keep only the latest position active

Editable substring fingerprints: join hashes in a segment tree

Sliding medians: expire heap entries by event identity

Ball trees: prune exact nearest-depot search with radius bounds

Project: audit slot, distinct, text, median, and ball indexes

Check successor, distinct, text, median, and ball contracts

Curriculum

Keyed lookup, collisions, and membership.

  1. 1Hash maps: keyed lookup with collision and load costs
  2. 2Hash sets: fast membership without an order promise
  3. 3LRU caches: couple keyed lookup to recency order
  4. 4Bloom filters: reject absent keys without claiming exact membership
  5. 5Sparse sets: constant-time membership for bounded integer IDs
  6. 6Open-addressed hash tables: tombstones and rebuilds
  7. 7Index snapshots: publish related maps as one in-memory version
  8. 8Count-min sketches: bounded-memory event estimates
  9. 9Bitvector rank and select: count and locate set bits
  10. 10Sorted runs and tombstones: model an LSM read path
  11. 11Robin Hood hashing: probe distance and backward-shift deletion
  12. 12Cuckoo hashing: relocate keys and recover from cycles
  13. 13Inverted indexes: intersect sorted incident postings
  14. 14Positional postings: find exact token phrases
  15. 15Trigram indexes: filter and verify substring candidates
  16. 16Front-coded lexicons: store shared prefixes within sorted term blocks
  17. 17LFU caches: evict by frequency, then recency
  18. 18Misra–Gries: find frequent-item candidates in one pass
  19. 19Space-Saving: ranked candidates with count bounds
  20. 20HyperLogLog: estimate unique IDs with fixed registers
  21. 21Counting Bloom filters: delete only a known insertion
  22. 22Scalable Bloom filters: grow without discarding old members
  23. 23Blocked Bloom filters: localize probes and watch skew
  24. 24Cuckoo filters: relocate compact fingerprints safely
  25. 25Spatial hash grids: move points between occupied cells
  26. 26Elias–Fano: split sorted IDs into low parts and high bits
  27. 27Chunked integer sets: switch sparse arrays to dense bitmaps
  28. 28Gap-encoded postings: add checkpoints to bytewise seeks
  29. 29Slab slots: reuse fixed-size pages with generation checks
  30. 30Bitmap hash tries: copy paths for immutable alert maps
  31. 31Extendible hashing: split buckets through a shared directory
  32. 32CLOCK caches: revisit pages through reference bits
  33. 33Segmented LRU: separate probation from protected reuse
  34. 34Frequency admission: compare an arrival with an eviction victim
  35. 35Resident LRU-K: Evict by the Kth Recent Reference
  36. 36Static XOR filters: peel a fingerprint membership index
  37. 37Linear hashing: split one bucket at a time as a table grows
  38. 38Two-level perfect hashing: exact static case membership
  39. 39Block-max postings: skip safe document-score regions
  40. 40MinHash bands: retrieve incident candidates, then check exact overlap
  41. 41Run-length bitmaps: union, intersect, and subtract alert spans
  42. 42Count Sketch: estimate signed incident frequencies with row medians
  43. 43Hopscotch hashing: keep each shipment near its home bucket
  44. 44Invertible Bloom tables: peel differences between replica ID sets
  45. 45SimHash bands: find near-duplicate incident fingerprints
  46. 46All-one frequency buckets: increment, decrement, and read both extremes

Hierarchical search and priority order.

  1. 1Binary search trees: preserve order through every branch
  2. 2Binary heaps: select the next priority with a tie rule
  3. 3Tries: make prefix search distinct from complete-key lookup
  4. 4AVL trees: restore height balance after insertion
  5. 5Skip lists: randomized levels over an ordered bottom chain
  6. 6B+ leaf pages: split full pages and keep range order
  7. 7Red-black trees: audit color and black-height invariants
  8. 8B-trees: split full pages during ordered insertion
  9. 9Interval trees: prune overlap search with subtree maximums
  10. 10Compressed tries: split shared edge labels at the divergence
  11. 11Red-black insertion: rotate and recolor an ordered index
  12. 12B+ trees: propagate leaf splits through multiple levels
  13. 13Balanced interval indexes: rotate height and maximum metadata together
  14. 14Compressed tries: delete exact keys and merge unused edges
  15. 15B+ deletion: borrow, merge, and repair separators
  16. 16Indexed binary heaps: decrease a queued priority
  17. 17Red-black deletion: move color before removing a key
  18. 18AVL interval deletion: repair balance and maximum endpoints
  19. 19Page journals: replay committed index changes
  20. 20Persistent ordered indexes: copy search paths, share subtrees
  21. 21Framed journals: detect a torn tail before replay
  22. 22Failure-linked tries: find overlapping alert terms in one scan
  23. 23Suffix arrays: indexed substring search and adjacent LCP
  24. 24K-d trees: exact nearest depot with plane pruning
  25. 25Binary-tree traversals: four orders without recursion
  26. 26AVL order statistics: maintain subtree sizes for rank and select
  27. 27Wavelet tree: subarray counts and order statistics
  28. 28Implicit treap: edit positions and reverse a range
  29. 29Heavy-light decomposition: sum weights along a tree path
  30. 30Binary lifting: ancestors and common managers
  31. 31Suffix automata: index substrings as text arrives
  32. 32Packed R-tree: search intersecting depot rectangles
  33. 33Binary tries: choose a maximum-XOR fingerprint
  34. 34Merkle trees: verify an indexed scan record
  35. 35Two heaps: maintain an exact running median
  36. 36Expiry heaps: invalidate stale TTL records on replacement
  37. 37D-ary heaps: trade shallower ascent for wider extraction
  38. 38Pairing heaps: meld roots and pair children on removal
  39. 39Binomial heaps: carry equal-degree trees during merge
  40. 40Radix heaps: queue nondecreasing integer priorities
  41. 41Double-ended queues: reconcile min and max heaps
  42. 42Point-region quadtrees: subdivide crowded cells
  43. 43Bounding-volume hierarchies: prune box overlap searches
  44. 44Morton ordering: decompose a grid window into code ranges
  45. 45Ropes: share text chunks across immutable revisions
  46. 46Level-order unary degree tries: encode child runs as bits
  47. 47Buddy blocks: split powers of two and reunite partners
  48. 48Ternary search trees: branch by character and continue prefixes
  49. 49Binary radix routing: choose the longest matching prefix
  50. 50Splay Trees: Access Rotations and Join Invariants
  51. 51Cartesian trees: preserve sequence order under a heap minimum
  52. 52Leftist heaps: keep the right spine short for meld
  53. 53Two-dimensional range trees: count a static rectangle
  54. 54Van Emde Boas trees: successor in a bounded integer universe
  55. 55Scapegoat trees: rebuild a deep insertion subtree
  56. 56Palindromic trees: index distinct palindromes as text arrives
  57. 57Balanced-parentheses trees: encode an ordered hierarchy
  58. 58BK-trees: search incident labels within edit distance
  59. 59Vantage-point trees: nearest depots by a metric radius
  60. 60FM-index backward search: narrow a suffix interval by character
  61. 61Euler-tour RMQ: answer static common ancestors in constant query time
  62. 62X-fast trie: predecessor and successor in a fixed integer universe
  63. 63Compressed suffix trees: locate patterns across a frozen text
  64. 64Skew heaps: meld priorities by swapping child paths
  65. 65Fibonacci heaps: cut on decrease and consolidate on removal
  66. 66Tournament trees: merge sorted runs through one winner path
  67. 67Priority search trees: report events in a three-sided region
  68. 68Reduced ordered decision diagrams: share identical rule branches
  69. 69LZ78 phrase tries: emit dictionary index and next symbol
  70. 70Huffman trees: assign prefix codes from symbol frequencies
  71. 71Ordered treaps: split, join, and select depot keys
  72. 72Span skip lists: rank and select without a full scan
  73. 73Zero-suppressed diagrams: share sparse dispatch set families
  74. 74Double-array tries: static incident-code transitions with BASE and CHECK
  75. 75Adaptive radix trees: grow byte-edge nodes as incident codes branch
  76. 76Minimal acyclic dictionaries: merge equivalent word suffix states
  77. 77Min-max heaps: remove either end of one dispatch priority array
  78. 78Patricia binary routing: compress chains without losing prefix matches
  79. 79Sliding medians: expire heap entries by event identity
  80. 80Ball trees: prune exact nearest-depot search with radius bounds

Point updates and repeated interval queries.

  1. 1Fenwick trees: update points and query prefix totals
  2. 2Segment trees: combine child ranges after updates
  3. 3Sparse tables: precompute immutable range minima
  4. 4Persistent segment trees: retain old range-sum versions
  5. 5Sparse coordinate segment tree: allocate only visited paths
  6. 6Lazy segment tree: add to a range and query its minimum
  7. 7Two-dimensional Fenwick tree: update cells and sum rectangles
  8. 8Two Fenwick trees: add across ranges and query sums
  9. 9Square-root blocks: update one capacity and sum a range
  10. 10Merge-sort trees: count readings below a threshold in one interval
  11. 11Disjoint sparse tables: immutable sums with constant-time queries
  12. 12Li Chao trees: minimum linear tariff at a chosen quantity
  13. 13Coordinate compression: preserve order with dense integer ranks
  14. 14Fenwick frequency index: select the kth stored key
  15. 15Mo ordering: count distinct scan codes across an offline query batch
  16. 16Two-dimensional prefixes: constant-time static rectangle sums
  17. 17Segment tree beats: cap a range while retaining its sum
  18. 18Wavelet matrices: count frequencies and find subarray quantiles
  19. 19Compressed 2D Fenwick trees: toggle known points and count rectangles
  20. 20Segment-tree stabbing indexes: list intervals active at one point
  21. 21Two-dimensional segment trees: correct sensors and sum rectangles
  22. 22Range-majority indexes: verify a candidate before returning it
  23. 23Range-mode indexes: combine complete-block modes with fringe candidates
  24. 24Persistent range MEX: search last occurrences in prefix versions
  25. 25Range XOR bases: merge linear spans in a segment tree
  26. 26Affine lazy segment trees: compose range calibration before summing
  27. 27Persistent subarray ranks: subtract prefix frequency trees
  28. 28Maximum-subarray segment trees: preserve the crossing burst
  29. 29Li Chao interval offers: limit each line to its valid minutes
  30. 30Persistent range-distinct counts: keep only the latest position active
  31. 31Editable substring fingerprints: join hashes in a segment tree

Combine structures under an operation contract.

  1. 1Project: choose structures for a dispatch board
  2. 2Project: audit depot connectivity and daily ranges
  3. 3Project: design a versioned warehouse index
  4. 4Project: own a maintenance index and work queue
  5. 5Project: test mutation invariants across four indexes
  6. 6Project: release a warehouse plan after indexed mutations
  7. 7Project: test depot rollback, routes, and ordered deletion
  8. 8Project: plan a reversible depot release
  9. 9Project: audit a live depot index and recovery path
  10. 10Project: search incident text and count event pressure
  11. 11Project: audit dispatch order and dense depot links
  12. 12Project: audit sparse readings and task constraints
  13. 13Project: audit incident flags, depot paths, and sorted runs
  14. 14Project: audit capacity ranges and warehouse indexes
  15. 15Project: audit a depot forest and incident notes
  16. 16Project: audit asset IDs and depot zones
  17. 17Project: audit capacity, medians, and scan integrity
  18. 18Project: audit four range-query workloads
  19. 19Project: audit ranks, windows, and grid reports
  20. 20Project: audit incident text index contracts
  21. 21Project: audit incident retention and dispatch
  22. 22Project: audit four bounded stream views
  23. 23Project: audit approximate-membership mutations
  24. 24Project: audit four priority-queue contracts
  25. 25Project: audit moving points and static spatial boxes
  26. 26Project: audit text edits and blocked sequence lookups
  27. 27Project: audit compact alert and document indexes
  28. 28Project: audit four reusable storage contracts
  29. 29Project: audit four keyed-lookup structures
  30. 30Project: audit eviction, admission, and expiry
  31. 31Project: Audit Adaptive Search and Cache History
  32. 32Project: audit search layouts, range roots, melds, and numeric constraints
  33. 33Project: audit spatial counts, bounded successors, rebuilds, and filter membership
  34. 34Project: audit streaming palindromes, range caps, quantiles, and window order
  35. 35Project: audit hash splits, spatial toggles, queue versions, and tree intervals
  36. 36Project: audit metric searches, marked depots, and static membership
  37. 37Project: audit text intervals, score bounds, rank models, and ancestor tours
  38. 38Project: audit predecessor, revision, substring, and coverage snapshots
  39. 39Project: audit graph overlays, path bits, labels, and heap ownership
  40. 40Project: audit heap repairs, run winners, spatial pruning, and rules
  41. 41Project: audit phrase codes, active intervals, prefix bits, and routes
  42. 42Project: audit ordered ranks, grid corrections, and majority windows
  43. 43Project: audit weighted draws, incident candidates, and alert spans
  44. 44Project: audit member moves, cut depots, bottlenecks, and set families
  45. 45Project: audit signed sketches, recent windows, and exact range modes
  46. 46Project: audit static prefixes, neighborhood placement, replica differences, and unitigs
  47. 47Project: audit adaptive nodes, bit slices, fingerprint bands, and shared word states
  48. 48Project: audit range MEX, XOR spans, calibration sums, and priority ends
  49. 49Project: audit ranks, bursts, tariffs, count extremes, and routes
  50. 50Project: audit slot, distinct, text, median, and ball indexes

Check invariants and cost claims.

  1. 1Linear and hash structure decisions
  2. 2Tree, graph, and range structure decisions
  3. 3Advanced structure contracts
  4. 4Index and queue invariants
  5. 5Mutation and versioning contracts
  6. 6Deletion, priority, and dependency checks
  7. 7Tree deletion, rollback, and route checks
  8. 8Offline connectivity, queue, snapshot, and recovery checks
  9. 9Online routes, persistent roots, journals, and CAS checks
  10. 10Pattern, spatial, and frequency index checks
  11. 11Circular lists, traversal, bitsets, and rank checks
  12. 12Sparse sums, quantiles, parity, and sequence edits
  13. 13Bit rank, depot paths, and sorted-run contracts
  14. 14Lazy ranges, ancestors, grids, and hash probes
  15. 15Forest paths, online substrings, and text pieces
  16. 16Cuckoo slots, spatial boxes, and bit trie paths
  17. 17Range corrections, hash proofs, and median heaps
  18. 18Block, threshold, disjoint, and line index contracts
  19. 19Coordinate ranks, order selection, offline windows, and grid sums
  20. 20Postings, positions, trigrams, and lexicon contracts
  21. 21Eviction, expiry, handles, and heap contracts
  22. 22Frequent items, distinct counts, and stream samples
  23. 23Approximate membership under mutation
  24. 24Priority-queue merge, monotonicity, and extremes
  25. 25Spatial grids, quadtrees, boxes, and code ranges
  26. 26Gap buffers, ropes, and blocked sequences
  27. 27Compact integer sets, postings, and tries
  28. 28Arenas, free spans, buddies, and slab slots
  29. 29Hash tries, term trees, routes, and directories
  30. 30CLOCK, segmented LRU, admission, and timer wheels
  31. 31Splay trees and resident history eviction
  32. 32Check search layouts, range roots, melds, and numeric constraints
  33. 33Check spatial counts, bounded successors, rebuilds, and filter membership
  34. 34Check streaming palindromes, range caps, quantiles, and window order
  35. 35Check hash splits, spatial toggles, queue versions, and tree intervals
  36. 36Check metric searches, marked depots, and static membership
  37. 37Check text intervals, score bounds, rank models, and ancestor tours
  38. 38Check predecessor, revision, substring, and coverage snapshots
  39. 39Check graph overlays, path bits, labels, and heap ownership
  40. 40Check heap repairs, run winners, spatial pruning, and rules
  41. 41Check phrase codes, active intervals, prefix bits, and routes
  42. 42Check ordered ranks, grid corrections, and majority windows
  43. 43Check weighted draws, incident candidates, and alert spans
  44. 44Check member moves, cut depots, bottlenecks, and set families
  45. 45Check signed sketches, recent windows, and exact range modes
  46. 46Check prefix, neighborhood, replica, and unitig contracts
  47. 47Check adaptive nodes, bit slices, SimHash, and acyclic word states
  48. 48Check range MEX, XOR spans, affine updates, and priority ends
  49. 49Check persistent ranks, fault bursts, tariff offers, counts, and routes
  50. 50Check successor, distinct, text, median, and ball contracts
  51. 51DSA Fundamentals Quiz
Storage details