Bootstrapping one-sided flexible arrays

  • Authors:
  • Ralf Hinze

  • Affiliations:
  • Universität Bonn, Bonn, Germany

  • Venue:
  • Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

The abstract data type one-sided flexible array, also called random-access list, supports look-up and update of elements and can grow and shrink at one end. We describe a purely functional implementation based on weight-balanced multiway trees that is both simple and versatile. A novel feature of the representation is that the running time of the operations can be tailored to one's needs---even dynamically at array-creation time. In particular, one can trade the running time of look-up operations for the running time of update operations. For instance, if the multiway trees have a fixed degree, the operations take θ(log n) time, where n is the size of the flexible array. If the degree doubles levelwise, look-up speeds up to θ(sqrtlog n) while update slows down to θ(2sqrt log n). We show that different tree shapes can be conveniently modelled after mixed-radix number systems.