Hostname: page-component-586b7cd67f-t8hqh Total loading time: 0 Render date: 2024-11-21T12:44:53.049Z Has data issue: false hasContentIssue false

Finger trees: a simple general-purpose data structure

Published online by Cambridge University Press:  16 November 2005

RALF HINZE
Affiliation:
Institut für Informatik III, Universität Bonn, Römerstraße 164, 53117 Bonn, Germany (e-mail: ralf@informatik.uni-bonn.de)
ROSS PATERSON
Affiliation:
Department of Computing, City University, London EC1V OHB, UK (e-mail: ross@soi.city.ac.uk)
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

We introduce 2-3 finger trees, a functional representation of persistent sequences supporting access to the ends in amortized constant time, and concatenation and splitting in time logarithmic in the size of the smaller piece. Representations achieving these bounds have appeared previously, but 2-3 finger trees are much simpler, as are the operations on them. Further, by defining the split operation in a general form, we obtain a general purpose data structure that can serve as a sequence, priority queue, search tree, priority search queue and more.

Type
Article
Copyright
2005 Cambridge University Press
Submit a response

Discussions

No Discussions have been published for this article.