Finger trees: a simple general−purpose data structure

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...

Full description

Bibliographic Details
Main Authors: Hinze, R, Paterson, R
Format: Journal article
Published: 2006
_version_ 1826269000621883392
author Hinze, R
Paterson, R
author_facet Hinze, R
Paterson, R
author_sort Hinze, R
collection OXFORD
description 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.
first_indexed 2024-03-06T21:18:11Z
format Journal article
id oxford-uuid:4083c1c6-0c3a-4505-8319-d80bb4033d88
institution University of Oxford
last_indexed 2024-03-06T21:18:11Z
publishDate 2006
record_format dspace
spelling oxford-uuid:4083c1c6-0c3a-4505-8319-d80bb4033d882022-03-26T14:38:20ZFinger trees: a simple general−purpose data structureJournal articlehttp://purl.org/coar/resource_type/c_dcae04bcuuid:4083c1c6-0c3a-4505-8319-d80bb4033d88Department of Computer Science2006Hinze, RPaterson, RWe 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.
spellingShingle Hinze, R
Paterson, R
Finger trees: a simple general−purpose data structure
title Finger trees: a simple general−purpose data structure
title_full Finger trees: a simple general−purpose data structure
title_fullStr Finger trees: a simple general−purpose data structure
title_full_unstemmed Finger trees: a simple general−purpose data structure
title_short Finger trees: a simple general−purpose data structure
title_sort finger trees a simple general purpose data structure
work_keys_str_mv AT hinzer fingertreesasimplegeneralpurposedatastructure
AT patersonr fingertreesasimplegeneralpurposedatastructure