## Putting your data structure on a diet (2007)

Venue: | In preparation (2006). [Ask Jyrki for details |

Citations: | 2 - 2 self |

### BibTeX

@INPROCEEDINGS{Brönnimann07puttingyour,

author = {Hervé Brönnimann and Jyrki Katajainen and Pat Morin},

title = {Putting your data structure on a diet},

booktitle = {In preparation (2006). [Ask Jyrki for details},

year = {2007}

}

### OpenURL

### Abstract

Abstract. Consider a data structure D that stores a dynamic collection of elements. Assume that D uses a linear number of words in addition to the elements stored. In this paper several data-structural transformations are described that can be used to transform D into another data structure D ′ that supports the same operations as D, has considerably smaller memory overhead than D, and performs the supported operations by a small constant factor or a small additive term slower than D, depending on the data structure and operation in question. The compaction technique has been successfully applied for linked lists, dictionaries, and priority queues.

### Citations

319 | Introduction to Algorithms, 2 nd edition - Cormen, Leiserson, et al. - 2001 |

136 | Randomized search trees
- Seidel, Aragon
- 1996
(Show Context)
Citation Context ...he working-set property [26, 39], the queueish property [27], the unified property [26, 39], the ability to insert and erase in constant time [19, 25, 32], and the (static or dynamic) finger property =-=[2, 9, 11, 24, 25]-=-. These special properties are a large part of the reason that so many implementations ofsPutting your data structure on a diet 3 fundamental data structures exist. Many algorithmic applications requi... |

96 | A new data structure for representing sorted Lists
- Huddleston, Mehlhom
- 1982
(Show Context)
Citation Context ...cit data structures. Examples of such properties include the working-set property [26, 39], the queueish property [27], the unified property [26, 39], the ability to insert and erase in constant time =-=[19, 25, 32]-=-, and the (static or dynamic) finger property [2, 9, 11, 24, 25]. These special properties are a large part of the reason that so many implementations ofsPutting your data structure on a diet 3 fundam... |

86 |
Linear hashing: A new tool for file and table addressing
- LITWIN
- 1980
(Show Context)
Citation Context ...ta structures as well. Other applications, where the technique is known to work, include positional sequences (doubly-linked lists), unordered dictionaries (e.g. hash tables relying on linear hashing =-=[33]-=-), and double-ended priority queues. The details follow closely the guidelines given in this paper, so we leave them to the interested reader. The practical value of the compaction technique is that u... |

74 |
Relaxed Heaps: An Alternative to Fibonacci Heaps with Applications to Parallel Computation
- Driscoll, Gabow, et al.
- 1988
(Show Context)
Citation Context ...e and decrease. Of the known implementations supporting find-min, insert, and decrease in constant time in the worst case, relaxed weak queues [16] require 3n+O(lg n) extra words and other structures =-=[4, 14, 18, 29, 30]-=- more. If decrease is allowed to take logarithmic time, the memory overhead can be reduced to 2n + O(lg n) words as pointed out, for example, in [16, 13]. We note that the implicit priority queue stru... |

59 | Data Structures and Algorithms in Java - Goodrich, Tamassia - 1998 |

57 |
A new representation for linear lists
- Guibas, McCreight, et al.
- 1977
(Show Context)
Citation Context ...he working-set property [26, 39], the queueish property [27], the unified property [26, 39], the ability to insert and erase in constant time [19, 25, 32], and the (static or dynamic) finger property =-=[2, 9, 11, 24, 25]-=-. These special properties are a large part of the reason that so many implementations ofsPutting your data structure on a diet 3 fundamental data structures exist. Many algorithmic applications requi... |

50 |
Design and analysis of a data structure for representing sorted lists
- Brown, Tarjan
- 1980
(Show Context)
Citation Context ...he working-set property [26, 39], the queueish property [27], the unified property [26, 39], the ability to insert and erase in constant time [19, 25, 32], and the (static or dynamic) finger property =-=[2, 9, 11, 24, 25]-=-. These special properties are a large part of the reason that so many implementations ofsPutting your data structure on a diet 3 fundamental data structures exist. Many algorithmic applications requi... |

45 | On the dynamic finger conjecture for splay trees. Part 1: Splay sorting log n-block sequences
- Cole, Mishra, et al.
(Show Context)
Citation Context |

41 |
Alternatives to splay trees with o(log n) worst-case access times
- Iacono
- 2001
(Show Context)
Citation Context ...rhead, and so on. Many implementations are also special because they provide certain properties, not provided by implicit data structures. Examples of such properties include the working-set property =-=[26, 39]-=-, the queueish property [27], the unified property [26, 39], the ability to insert and erase in constant time [19, 25, 32], and the (static or dynamic) finger property [2, 9, 11, 24, 25]. These specia... |

31 | Worst-case efficient priority queues, in
- Brodal
- 1996
(Show Context)
Citation Context ...e and decrease. Of the known implementations supporting find-min, insert, and decrease in constant time in the worst case, relaxed weak queues [16] require 3n+O(lg n) extra words and other structures =-=[4, 14, 18, 29, 30]-=- more. If decrease is allowed to take logarithmic time, the memory overhead can be reduced to 2n + O(lg n) words as pointed out, for example, in [16, 13]. We note that the implicit priority queue stru... |

29 |
P.V.: An implicit binomial queue with constant insertion time
- Carlsson, Munro, et al.
- 1988
(Show Context)
Citation Context ...that we do not consider elementary priority queues since a fully-implicit priority queue exists that can support find-min and insert in O(1) worstcase time, and extract-min in O(lg n) worst-case time =-=[10]-=-, n being the number of elements stored. As mentioned in Section 1, in a realistic model of computation, the amount of extra space used by such a data structure is only O( √ n). In [10], it was even s... |

23 |
A balanced search tree with O(1) worstcase update time
- Levcopoulos, Overmars
- 1988
(Show Context)
Citation Context ...cit data structures. Examples of such properties include the working-set property [26, 39], the queueish property [27], the unified property [26, 39], the ability to insert and erase in constant time =-=[19, 25, 32]-=-, and the (static or dynamic) finger property [2, 9, 11, 24, 25]. These special properties are a large part of the reason that so many implementations ofsPutting your data structure on a diet 3 fundam... |

19 | General balanced trees
- Andersson
- 1999
(Show Context)
Citation Context .... Thus, it is not always possible to substitute one implementation for another. Several dictionary implementations, including variants of height-balanced search trees [8], self-adjusting search trees =-=[1, 22, 39]-=-, and randomized search trees [2, 38], have been proposed that reduce the extra storage to two pointers per element. However, when a dictionary has to support locationbased access to elements, additio... |

19 |
Scapegoat trees
- Galperin, Rivest
- 1993
(Show Context)
Citation Context .... Thus, it is not always possible to substitute one implementation for another. Several dictionary implementations, including variants of height-balanced search trees [8], self-adjusting search trees =-=[1, 22, 39]-=-, and randomized search trees [2, 38], have been proposed that reduce the extra storage to two pointers per element. However, when a dictionary has to support locationbased access to elements, additio... |

18 | A simple balanced search tree with O(1) worst-case update time
- Fleischer
- 1996
(Show Context)
Citation Context ...cit data structures. Examples of such properties include the working-set property [26, 39], the queueish property [27], the unified property [26, 39], the ability to insert and erase in constant time =-=[19, 25, 32]-=-, and the (static or dynamic) finger property [2, 9, 11, 24, 25]. These special properties are a large part of the reason that so many implementations ofsPutting your data structure on a diet 3 fundam... |

18 |
Meldable heaps and Boolean union-find
- Kaplan, Shafrir, et al.
- 2002
(Show Context)
Citation Context ...e and decrease. Of the known implementations supporting find-min, insert, and decrease in constant time in the worst case, relaxed weak queues [16] require 3n+O(lg n) extra words and other structures =-=[4, 14, 18, 29, 30]-=- more. If decrease is allowed to take logarithmic time, the memory overhead can be reduced to 2n + O(lg n) words as pointed out, for example, in [16, 13]. We note that the implicit priority queue stru... |

16 |
Optimal worst-case operations for implicit cache-oblivious search trees
- Franceschini, Grossi
(Show Context)
Citation Context ...classical example is the binary heap of Williams [41], which is a priority queue supporting methods find-min, insert, and extractmin. Another example is the searchable heap of Franceschini and Grossi =-=[20]-=-, which is an ordered dictionary supporting methods find-member, findpredecessor, find-successor, insert, and erase. A searchable heap is a complicated data structure and because of the bit encoding t... |

15 | Resizable arrays in optimal time and space
- Brodnik, Carlsson, et al.
- 1999
(Show Context)
Citation Context ...ltaneously. To relax this assumption, a resizable array could be used instead. It is known that any realization of a resizable array requires at least Ω( √ n) extra space for pointers and/or elements =-=[6]-=-, and realizations exist that only require O( √ n) extra space [6, 31]. In [6], it was shown that a space-efficient resizable array can perform well under a realistic model of dynamic memory allocatio... |

12 |
New heap data structures
- Kaplan, Tarjan
- 1999
(Show Context)
Citation Context |

11 | Two-tier relaxed heaps
- Elmasry, Jensen, et al.
(Show Context)
Citation Context |

11 |
Implicit data structures for the dictionary problem
- Frederickson
- 1983
(Show Context)
Citation Context ...ng to choose b = lg n. The problem with this choice is that n, the number of elements stored, is varying whereas b must be kept fixed. To avoid this problem, we use Frederickson’s partitioning scheme =-=[21]-=- and partition the data structure into O(lg lg n) separate portions of doubly-exponentially increasing sizes 221, 222, 223, and so on, except that the last portion can be smaller. Inside the ith porti... |

10 | K.: Optimal finger search trees in the pointer machine
- Brodal, Lagogiannis, et al.
- 2003
(Show Context)
Citation Context ...f additional storage under the assumption that a bit and a pointer can be packed into one word. As a concrete example of the usage of Theorem 6, let us apply it to the ordered dictionary presented in =-=[5]-=-. By making b large enough so that Θ( 1 b ) = ε, we get the following corollary. Corollary 2. There exists an ordered dictionary that supports location-based updates in O(1/ε) worst-case time, finger ... |

10 | Experiences with the design and implementation of space-efficient deques
- Katajainen, Mortensen
- 2001
(Show Context)
Citation Context ...sed instead. It is known that any realization of a resizable array requires at least Ω( √ n) extra space for pointers and/or elements [6], and realizations exist that only require O( √ n) extra space =-=[6, 31]-=-. In [6], it was shown that a space-efficient resizable array can perform well under a realistic model of dynamic memory allocation. In particular, the waste of memory due to internal fragmentation is... |

8 | A framework for speeding up priorityqueue operations
- Elmasry, Jensen, et al.
- 2004
(Show Context)
Citation Context ...assumed to be no greater than the original element pointed to by p.s8 Hervé Brönnimann, Jyrki Katajainen, and Pat Morin Of these methods, borrow is non-standard, but according to our earlier research =-=[15, 17]-=- it is a valuable tool, for instance, in data-structural transformations. Our point to include it in the repertoire of priority-queue operations is to show that our compaction scheme can handle it eas... |

6 |
On the worst case performance of buddy systems
- Lloyd, Loui
- 1985
(Show Context)
Citation Context ...rray can perform well under a realistic model of dynamic memory allocation. In particular, the waste of memory due to internal fragmentation is O( √ n) even though external fragmentation can be large =-=[34]-=-. We call a data structure elementary if it only allows key-based access to elements. In particular, all implicit data structures are elementary. An important requirement often imposed by modern libra... |

5 |
A storage scheme for height-balanced trees
- BROWN
- 1978
(Show Context)
Citation Context ...ing times or storage requirements. Thus, it is not always possible to substitute one implementation for another. Several dictionary implementations, including variants of height-balanced search trees =-=[8]-=-, self-adjusting search trees [1, 22, 39], and randomized search trees [2, 38], have been proposed that reduce the extra storage to two pointers per element. However, when a dictionary has to support ... |

5 |
The relaxed min-max heap --- A mergeable doubleended priority queue
- Ding, Weiss
- 1993
(Show Context)
Citation Context ...n) extra words and other structures [4, 14, 18, 29, 30] more. If decrease is allowed to take logarithmic time, the memory overhead can be reduced to 2n + O(lg n) words as pointed out, for example, in =-=[16, 13]-=-. We note that the implicit priority queue structure of [35], which is used to study the complexity of implicit priority queues that support decrease in O(1) time, addresses the issue of referential i... |

5 | Two new methods for transforming priority queues into double-ended priority queues
- Elmasry, Jensen, et al.
- 2006
(Show Context)
Citation Context ...assumed to be no greater than the original element pointed to by p.s8 Hervé Brönnimann, Jyrki Katajainen, and Pat Morin Of these methods, borrow is non-standard, but according to our earlier research =-=[15, 17]-=- it is a valuable tool, for instance, in data-structural transformations. Our point to include it in the repertoire of priority-queue operations is to show that our compaction scheme can handle it eas... |

4 | Relaxed weak queues: An alternative to run-relaxed heaps
- Elmasry, Jensen, et al.
- 2005
(Show Context)
Citation Context ...ary to provide referential integrity, and to support erase and decrease. Of the known implementations supporting find-min, insert, and decrease in constant time in the worst case, relaxed weak queues =-=[16]-=- require 3n+O(lg n) extra words and other structures [4, 14, 18, 29, 30] more. If decrease is allowed to take logarithmic time, the memory overhead can be reduced to 2n + O(lg n) words as pointed out,... |

3 |
Efficiency of various forms of red-black trees
- Brönnimann, Katajainen
- 2006
(Show Context)
Citation Context ...eded. By using the child-sibling representation of binary trees (see, e.g. [40, Section 4.1]) and by packing the bits describing the type and colour of nodes in pointers (as proposed, for example, in =-=[7]-=-), red-black trees supporting location-based access are obtained that only use 2n+O(1) words of memory in addition to the n elements stored. In contrast with fully-implicit binary heaps, many priority... |

3 | S.: The complexity of implicit and space-efficient priority queues
- Mortensen, Pettie
- 2005
(Show Context)
Citation Context ... decrease is allowed to take logarithmic time, the memory overhead can be reduced to 2n + O(lg n) words as pointed out, for example, in [16, 13]. We note that the implicit priority queue structure of =-=[35]-=-, which is used to study the complexity of implicit priority queues that support decrease in O(1) time, addresses the issue of referential integrity by forcing the calling application to maintain a ma... |

1 |
Supernode binary search tree
- Jung, Sahni
(Show Context)
Citation Context ...ingle-source shortest-paths problem) it is obviously undesirable in a general-purpose priority queue. An idea similar to ours has also been applied by to general binary search trees by Jung and Sahni =-=[28]-=-, but their application of the idea does not guarantee an arbitrarily small memory overhead and may increase the running times of operations on binary search trees by more than a constant factor. Our ... |