ACM Home Page
Please provide us with feedback. Feedback
Self-adjusting binary trees
Full text PdfPdf (924 KB)
Source Annual ACM Symposium on Theory of Computing archive
Proceedings of the fifteenth annual ACM symposium on Theory of computing table of contents
Pages: 235 - 245  
Year of Publication: 1983
ISBN:0-89791-099-0
Authors
Sponsor
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 21,   Downloads (12 Months): 66,   Citation Count: 16
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/800061.808752
What is a DOI?

ABSTRACT

We use the idea of self-adjusting trees to create new, simple data structures for priority queues (which we call heaps) and search trees. Unlike other efficient implementations of these data structures, self-adjusting trees have no balance condition. Instead, whenever the tree is accessed, certain adjustments take place. (In the case of heaps, the adjustment is a sequence of exchanges of children, in the case of search trees the adjustment is a sequence of rotations.) Self-adjusting trees are efficient in an amortized sense: any particular operation may be slow but any sequence of operations must be fast. Self-adjusting trees have two advantages over the corresponding balanced trees in both applications. First, they are simpler to implement because there are fewer cases in the algorithms. Second, they are more storage-efficient because no balance information needs to be stored. Furthermore, a self-adjusting search tree has the remarkable property that its running time (for any sufficiently long sequence of search operations) is within a constant factor of the running time for the same set of searches on any fixed binary tree. It follows that a self-adjusting tree is (up to a constant factor) as fast as the optimal fixed tree for a particular probability distribution of search requests, even though the distribution is unknown.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
G. M. Adel'son-Vel'skii and E. M. Landis, "An algorithm for the organization of information," Soviet Math. Dokl., 3 (1962), 1259-1262.
 
2
3
 
4
S. W. Bent, Dynamic Weighted Data Structures, TM STAN-CS-82-916 Computer Science Dept., Stanford University, Stanford, CA 94305, 1982.
 
5
S. W. Bent, D. D. Sleator and R. E. Tarjan, "Biased 2-3 trees," Proc. Twenty-First Annual IEEE Symp. on Foundations of Computer Science (1980), 248-254
 
6
S. W. Bent, D. D. Sleator and R. E. Tarjan, "Biased search trees," to appear.
 
7
J. R. Bitner, "Heuristics that dynamically organize data structures," SIAM Journal on Computing8 (1979), 82-110.
 
8
M. R. Brown, The Analysis Of a Practical and Nearly Optimal Priority Queue, TM STAN-CS-77-600 Computer Science Dept., Stanford University, Stanford, CA 94305, 1977.
 
9
C. A. Crane, Linear Lists and Priority Queues as Balanced Binary Trees, TM STAN-CS-72-259 Computer Science Dept., Stanford University, Stanford, CA 94305, 1972.
 
10
 
11
 
12
 
13
J. Nievergelt and E. M. Reingold, "Binary search trees of bounded balance," SIAM journal on Computing, 2 (1973) 33-43.
14
 
15
D. D. Sleator, An O(nmlog n) Algorithm for Maximum Network Flow, TM STAN-CS-80-831 Computer Science Dept., Stanford University, Stanford, CA 94305, 1980.
 
16
 
17
18

CITED BY  16

Collaborative Colleagues:
Daniel Dominic Sleator: colleagues
Robert Endre Tarjan: colleagues