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...
Main Authors: | , |
---|---|
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 |