Putting your data structure on a diet

Consider a data structureD that stores a dynamic collection of elem- ents. 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 transformD into another data structureD 0 that supports the same operations asD, has considerably smaller memory overhead thanD, 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 com- paction technique has been successfully applied for linked lists, dictionaries, and priority queues. Keywords. Data structures, lists, dictionaries, priority queues, space efficiency

[1]  Erik D. Demaine,et al.  Resizable Arrays in Optimal Time and Space , 1999, WADS.

[2]  Leonidas J. Guibas,et al.  A new representation for linear lists , 1977, STOC '77.

[3]  HAEJAE JUNG,et al.  Supernode Binary Search Trees , 2003, Int. J. Found. Comput. Sci..

[4]  Robert E. Tarjan,et al.  Relaxed heaps: an alternative to Fibonacci heaps with applications to parallel computation , 1988, CACM.

[5]  Richard Cole,et al.  On the Dynamic Finger Conjecture for Splay Trees. Part II: The Proof , 2000, SIAM J. Comput..

[6]  Michael C. Loui,et al.  On the worst case performance of buddy systems , 2004, Acta Informatica.

[7]  Arne Andersson General Balanced Trees , 1999, J. Algorithms.

[8]  Robert E. Tarjan,et al.  Design and Analysis of a Data Structure for Representing Sorted Lists , 1978, SIAM J. Comput..

[9]  Cecilia R. Aragon,et al.  Randomized search trees , 1989, 30th Annual Symposium on Foundations of Computer Science.

[10]  Robert E. Tarjan,et al.  Amortized efficiency of list update and paging rules , 1985, CACM.

[11]  Amr Elmasry,et al.  Two-tier relaxed heaps , 2006, Acta Informatica.

[12]  Robert E. Tarjan,et al.  Data structures and network algorithms , 1983, CBMS-NSF regional conference series in applied mathematics.

[13]  Rudolf Fleischer A Simple Balanced Search Tree with O(1) Worst-Case Update Time , 1996, Int. J. Found. Comput. Sci..

[14]  John Iacono,et al.  Alternatives to splay trees with O(log n) worst-case access times , 2001, SODA '01.

[15]  Jyrki Katajainen,et al.  A Framework for Speeding Up Priority-Queue Operations , 2005 .

[16]  Seth Pettie,et al.  The Complexity of Implicit and Space Efficient Priority Queues , 2005, WADS.

[17]  Amr Elmasry,et al.  Two new methods for transforming priority queues into double-ended priority queues , 2007 .

[18]  Witold Litwin,et al.  Linear Hashing: A new Algorithm for Files and Tables Addressing , 1980, ICOD.

[19]  Michael T. Goodrich,et al.  Education forum: Web Enhanced Textbooks , 1998, SIGA.

[20]  Roberto Grossi,et al.  Optimal Worst-Case Operations for Implicit Cache-Oblivious Search Trees , 2003, WADS.

[21]  Jyrki Katajainen,et al.  Relaxed Weak Queues: An Alternative to Run-Relaxed Heaps , 2005 .

[22]  J. Ian Munro,et al.  An Implicit Binomial Queue with Constant Insertion Time , 1988, SWAT.

[23]  Gerth Stølting Brodal,et al.  Worst-case efficient priority queues , 1996, SODA '96.

[24]  John Beidler,et al.  Data Structures and Algorithms , 1996, Wiley Encyclopedia of Computer Science and Engineering.

[25]  Jyrki Katajainen,et al.  Experiences with the Design and Implementation of Space-Efficient Deques , 2001, Algorithm Engineering.

[26]  Ronald L. Rivest,et al.  Scapegoat trees , 1993, SODA '93.

[27]  Kurt Mehlhorn,et al.  A new data structure for representing sorted lists , 1980, Acta Informatica.

[28]  Alfred V. Aho,et al.  Data Structures and Algorithms , 1983 .

[29]  Christos Makris,et al.  Optimal finger search trees in the pointer machine , 2002, Symposium on the Theory of Computing.

[30]  Mark Allen Weiss,et al.  The relaxed min-max heap , 1993, Acta Informatica.

[31]  Mark R. Brown,et al.  A Storage Scheme for Height-Balanced Trees , 1978, Inf. Process. Lett..

[32]  Greg N. Frederickson,et al.  Implicit Data Structures for the Dictionary Problem , 1983, JACM.

[33]  Haim Kaplan,et al.  Meldable heaps and boolean union-find , 2002, STOC '02.

[34]  Clifford Stein,et al.  Introduction to Algorithms, 2nd edition. , 2001 .

[35]  Mark H. Overmars,et al.  A balanced search tree with O(1) worst-case update time , 1988, Acta Informatica.

[36]  J. IAN MUNRO,et al.  An Implicit Data Structure Supporting Insertion, Deletion, and Search in O(log² n) Time , 1986, J. Comput. Syst. Sci..

[37]  William Pugh,et al.  Skip Lists: A Probabilistic Alternative to Balanced Trees , 1989, WADS.

[38]  Venkatesh Raman,et al.  Representing dynamic binary trees succinctly , 2001, SODA '01.

[39]  Ronald L. Rivest,et al.  Introduction to Algorithms , 1990 .

[40]  Mark R. Brown Addendum to “a storage scheme for height-balanced trees” , 1979 .