Zip Trees

06/18/2018
by   Robert E. Tarjan, et al.
0

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 ("unzipping" 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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
12/31/2020

Bundled References: An Abstraction for Highly-Concurrent Linearizable Range Queries

We present bundled references, a new building block to provide lineariza...
research
01/03/2022

Technical Report: Bundling Linked Data Structures for Linearizable Range Queries

We present bundled references, a new building block to provide lineariza...
research
12/14/2017

Range Queries in Non-blocking k-ary Search Trees

We present a linearizable, non-blocking k-ary search tree (k-ST) that su...
research
08/31/2018

How to Fit a Tree in a Box

We study compact straight-line embeddings of trees. We show that perfect...
research
11/14/2018

A structural characterization of tree-based phylogenetic networks

Attempting to recognize a tree inside a network is a fundamental underta...
research
07/15/2019

New Paths from Splay to Dynamic Optimality

Consider the task of performing a sequence of searches in a binary searc...

Please sign up or login with your details

Forgot password? Click here to reset