Finger Search Trees with Constant Insertion Time

Gerth Stølting Brodal

Technical Report, MPI-I-97-1-020, Max-Planck-Institut für Informatik, 17 pages, September 1997.

Abstract

We consider the problem of implementing finger search trees on the pointer machine, i.e., how to maintain a sorted list such that searching for an element x, starting the search at any arbitrary element f in the list, only requires logarithmic time in the distance between x and f in the list.

We present the first pointer-based implementation of finger search trees allowing new elements to be inserted at any arbitrary position in the list in worst case constant time. Previously, the best known insertion time on the pointer machine was O(log* n), where n is the total length of the list. On a unit-cost RAM, a constant insertion time has been achieved by Dietz and Raman by using standard techniques of packing small problem sizes into a constant number of machine words.

Deletion of a list element is supported in O(log* n) time, which matches the previous best bounds. Our data structure requires linear space.

Online version

mpi-i-97-1-020.pdf (240 Kb)

BIBTEX entry

@techreport{mpi-i-97-1-020,
  address = "Im Stadtwald, D-66123 Saarbr{\"u}cken, Germany",
  author = "Gerth St{\o}lting Brodal",
  institution = "Max-Planck-Institut f{\"u}r Informatik",
  month = "September",
  number = "MPI-I-97-1-020",
  pages = "17",
  title = "Finger Search Trees with Constant Insertion Time",
  year = "1997"
}