Space-efficient finger search on degree-balanced search trees

We show how to support the finger search operation on degree-balanced search trees in a space-efficient manner that retains a worst-case time bound of O(log d), where d is the difference in rank between successive search targets. While most existing tree-based designs allocate linear extra storage in the nodes (e.g., for side links and parent pointers), our design maintains a compact auxiliary data structure called the "hand" during the lifetime of the tree and imposes no other storage requirement within the tree.The hand requires O(log n) space for an n-node tree and has a relatively simple structure. It can be updated synchronously during insertions and deletions with time proportional to the number of structural changes in the tree. The auxiliary nature of the hand also makes it possible to introduce finger searches into any existing implementation without modifying the underlying data representation (e.g., any implementation of Red-Black trees can be used). Together these factors make finger searches more appealing in practice.Our design also yields a simple yet optimal in-order walk algorithm with worst-case O(1) work per increment (again without any extra storage requirement in the nodes), and we believe our algorithm can be used in database applications when the overall performance is very sensitive to retrieval latency.

[1]  S. Rao Kosaraju,et al.  An optimal RAM implementation of catenable min double-ended queues , 1994, SODA '94.

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

[3]  M. AdelsonVelskii,et al.  AN ALGORITHM FOR THE ORGANIZATION OF INFORMATION , 1963 .

[4]  S. Rao Kosaraju,et al.  Localized search in sorted lists , 1981, STOC '81.

[5]  Athanasios K. Tsakalidis,et al.  AVL-Trees for Localized Search , 1984, ICALP.

[6]  Rudolf Bayer,et al.  Organization and maintenance of large ordered indexes , 1972, Acta Informatica.

[7]  Leonidas J. Guibas,et al.  A dichromatic framework for balanced trees , 1978, 19th Annual Symposium on Foundations of Computer Science (sfcs 1978).

[8]  David Thomas,et al.  The Art in Computer Programming , 2001 .

[9]  Cecilia R. Aragon,et al.  Randomized search trees , 2005, Algorithmica.

[10]  Robert E. Tarjan,et al.  Self-adjusting binary search trees , 1985, JACM.

[11]  Robert E. Tarjan,et al.  An O(n log log n)-Time Algorithm for Triangulating a Simple Polygon , 1988, SIAM J. Comput..

[12]  Heather Donnell Booth Some fast algorithms on graphs and trees , 1991 .

[13]  William Pugh,et al.  A skip list cookbook , 1990 .

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

[15]  Robert E. Tarjan,et al.  A Fast Merging Algorithm , 1979, JACM.

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

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

[18]  Mark H. Overmars,et al.  The Design of Dynamic Data Structures , 1987, Lecture Notes in Computer Science.

[19]  Gerth Stølting Brodal,et al.  Finger search trees with constant insertion time , 1998, SODA '98.

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

[21]  Haim Kaplan,et al.  Purely functional representations of catenable sorted lists , 1996, STOC '96.

[22]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

[23]  B. Monien,et al.  Data structures and efficient algorithms , 1992, Lecture Notes in Computer Science.