splay_treeversion

A splay tree implementation

Splay trees are binary search trees that move recently accessed nodes
closer to the root for easier access. They have amortized O(log
n)-time access for a large enough sequence of primitive operations.

A splay trees may outperform other trees such as red-black trees when
recently accessed items are more likely to be accessed in the near
future.

Notably, this splay tree implementation is parameterized by a
reduction operation which lets you specify an extra accumulator value,
which can then be searched by efficiently.