A pure python scapegoat splay tree class is provided. It is
thoroughly unit tested, passes pylint, and is known
to run on CPython 2.x, CPython 3.x, Pypy 2.2 and
Jython 2.7b2.
This scapegoat tree looks like a dictionary that’s always
sorted by key. It also reorganizes itself on every
put.
Perhaps the most interesting thing about a scapegoat tree,
is it is balanced even for ordered keys, without any storage
overhead (unlike treaps and red-black trees).