Finger Search Trees with Constant Insertion Time

Gerth Stølting Brodal

In Proc. 9th Annual ACM-SIAM Symposium on Discrete Algorithms, pages 540-549, 1998.

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.

Copyright notice

Copyright © 1998 by the Association for Computer Machinery, Inc., and the Society for Industrial and Applied Mathematics.

Online version

soda98.pdf (235 Kb)

DOI

doi.acm.org/10.1145/314613.314842

Slides

soda98.pdf (173 Kb)

BIBTEX entry

@inproceedings{soda98,
  author = "Gerth St{\o}lting Brodal",
  booktitle = "Proc. 9th Annual ACM-SIAM Symposium on Discrete Algorithms",
  doi = "doi.acm.org/10.1145/314613.314842",
  isbn = "0-89871-410-9",
  pages = "540-549",
  title = "Finger Search Trees with Constant Insertion Time",
  year = "1998"
}

Other versions