Choose the invariant or failure response that follows from each operation contract. Review the working program and compare it with a small direct oracle.
Lessons
- 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
