Abstract
We introduce the zip tree, a form of randomized binary search tree. One can
view a zip tree as a treap (Seidel and Aragon 1996) in which priority ties are
allowed and in which insertions and deletions are done by unmerging and merging
paths (ünzipping" and "zipping") rather than by doing rotations.
Alternatively, one can view a zip tree as a binary-tree representation of a
skip list (Pugh 1990). Doing insertions and deletions by unzipping and zipping
instead of by doing rotations avoids some pointer changes and can thereby
improve efficiency. Representing a skip list as a binary tree avoids the need
for nodes of different sizes and can speed up searches and updates. Zip trees
are at least as simple as treaps and skip lists but offer improved efficiency.
Their simplicity makes them especially amenable to concurrent operations.
Users
Please
log in to take part in the discussion (add own reviews or comments).