Observations: * A splay tree moves accessed nodes to the root of the tree, this is very costly * there was some success by randomizing splay trees in http://www.informatik.uni-freiburg.de/~salbers/ipl02.ps.gz[] * They splay top-down (which is considered more efficent) * the splay decision is done probabilistically once for the whole lookup Ideas: . splaying bottom up can be done on a per splay operation base . deeper elements shall have a higher chance to splay up, elements near the root can have a small chance . the 'zig' case happens only when we are next to the root . the 'zig-zig' mirrors the symetrie of a subtree but doesn't contribute to the whole tree balancing . the 'zig-zag' case decreases the tree depth, which might be of global benefit How it got Implemented: . optimized bottom up splaying, nodes are still 2 pointers only, recursing into the tree keeps a temporary 'trail' . probabilistic splay function which adjusts the splaying chance depending on the depth of the node . ignore the 'zig' case, the node is one level under the root, any improvement would be mariginal . 'zig-zig' has a normal chance of splaying . 'zig-zag' has a higher chance of splaying