Abstract
Trees have been important data structures since the mid-fifties when the first list processing applications and languages were developed. When Knuth systematized the accumulated knowledge about data structures in his 1968 book on Fundamental Algorithms, he devoted half the space to tree structures. During the seventies, data structures based on trees were extended to files on secondary storage and to multidimensional problems such as multi-key access. Trees also became the dominant data structure for many algorithms in the field of concrete complexity, because they are the only structures known that guarantee an O(log n) worst case bound on sequential and random access, insertion and deletion on linearly ordered sets. Recent events indicate, however, that in the coming decade the predominance of trees as all-round data structures may be challenged by address computation techniques. Various refinements and generalizations of the old programming trick called hashing have caused an unexpected extension of the domain of applicability of address computation techniques to dynamic files and multi-key access.
This paper surveys the history of data structures used for tables, files or record management systems: structures designed for efficient retrieval, insertion and deletion of single records characterized by key values chosen from linearly ordered sets. By describing a few milestones and highlights, I attempt to identify trends and speculate on future developments.
Preview
Unable to display preview. Download preview PDF.
References
Aho, A. V., Hopcroft, J. E. and Ullman, J. D. The design and analysis of computer algorithms, Addison-Wesley, 1974.
Adelson-Velskii, G. M. and Landis, Ye. M. An algorithm for the organization of information (in Russian), Dokl. Akad. Nauk SSSR, Vol 146, 263–266, 1962.
Amble, O. and Knuth, D. E. Ordered hash tables, Computer J., Vol 18, 135–142, 1975.
Bentley, J. L. Decomposable searching problems, Inform. Proc. Letters, Vol 8, No 5, 244–251, 1979.
Bentley, J. L. Multidimensional binary search trees in database applications IEEE Trans. Software Engr., Vol 5, No 4, 333–340, July 1979.
Bayer, R. and McCreight, E. M. Organization and maintenance of large ordered indexes, Acta Informatica, Vol 1, 173–189, 1972.
Bayer, R. and Schkolnick, M. Concurrency of operations on B-trees, Acta Informatica, Vol 9, 1–21, 1977.
Blum, N. and Mehlhorn, K. On the average number of rebalancing operations in weight-balanced trees, Theor. Comp. Sci, 1978.
Carter, J. L. and Wegman, M. Universal classes of hash functions, Report RC 6687, IBM Yorktown Heights, 1977.
Cichelli, R. J. Minimal perfect hash functions made simple, Comm. ACM, Vol 23, No 1, 17–19, Jan 1980.
Comer, D. The ubiquitous B-tree, ACM Computing Surveys, Vol 11, No 2, 121–138, June 1979.
Edelsbrunner, H. and van Leeuwen, J. Multidimensional algorithms and data structures (Bibliography) Bulletin of the EATCS, 1980.
Fagin, R., Nievergelt, J., Pippenger, N., and Strong, H. R., Extendible hashing — a fast access method for dynamic files, ACM Trans. Database Systems, Vol 4, No 3, 315–344, Sep 1979.
Fredkin, E. Trie memory, Comm. ACM, Vol 3, 490–500, 1960.
Goldstine, H. H. and von Neumann, J. Planning and coding of problems for an electronic computing instrument, Part II, Vol 1, 1947; reprinted in A. H. Taub (ed.), “John von Neumann — Collected Works“, Vol 5, Pergamon Press, 1963.
Guibas, L. and Sedgewick, R. A dichromatic framework for balanced trees, Proc. 19-th Annual Symp. Found. of Computer Sci., 8–21, IEEE, 1978.
Hinterberger, H. and Nievergelt, J., Concurrent access control in extendible hash files, (submitted)
Knuth, D. E. The art of computer programming, Addison-Wesley, Vol 1, Fundamental Algorithms, 1968, Vol 3, Sorting and Searching, 1973.
Kung, H. T. and Lehman, P. L. Concurrent manipulation of binary search trees, ACM Trans. Database Sys, Vol 5, No 3, 354–382, Sep 1980.
Larson, P. Dynamic hashing, BIT, Vol 18, 184–201, 1978.
Larson, P. Linear hashing with partial expansions, Proc. 6-th Conf. on Very Large Databases, Montreal, Oct 1980.
van Leeuwen, J. and Maurer, H. A. Dynamic systems of static data structures, Univ. Graz, Institut Informationsver. Report 42, Jan 1980.
Litwin, W. Virtual hashing: a dynamically changing hashing, Proc. 4-th Conf. Very Large Databases, Berlin, 1978, 517–523.
Litwin, W. Linear hashing: a new tool for file and table addressing, Proc. 6-th Conf. on Very Large Databases, Montreal, Oct 1980.
McCreight, E. M. Efficient algorithms for enumerating intersecting intervals and rectangles, XEROX PARC Report CSL-80-9, 1980.
Mehlhorn, K. Arbitrary weight changes in dynamic trees, RAIRO, Th CS
Mehlhorn, K. Lower bounds on the efficiency of static to dynamic transforms of data structures, Univ. Saarland Report 1980.
Nievergelt, J. and Reingold, E. M. Binary search trees of bounded balance, SIAM J. Computing, Vol 2, No 1, 33–43, Mar 1973.
Nievergelt, J. Binary search trees and file organization, ACM Computing Surveys, Vol 6, No 3, 195–207, Sep 1974.
Nievergelt, J., Seveik, K. and Hinterberger, H. The grid file: a dynamic multikey access structure, (in preparation)
Newell, A. and Simon, H. A. The logic theory machine — A complex information processing system, IRE Trans. Information Theory, Vol. IT-2, No 3, 61–79, Sep 1956.
Olivie', H. J. Half-balanced binary search trees, Report 81-01, IHAM, B-2000 Antwerp, 1981.
Rosenberg, A. L. Storage mappings for extendible arrays, in R. T. Yeh (ed.), Current Trends in Programming Methodology, Vol IV: Data Structuring, Ch 10, Prentice-Hall 1978.
Saxe, J. B. and Bentley, J. L. Transforming static data structures to dynamic structures, 20-th IEEE Symp. Foundations of Computer Scsi., 148–168, 1979.
Sprugnoli, R. Perfect hashing functions: a single probe retrieving method for static sets, Comm. ACM, Vol 20, No 11, 841–850, Nov 1977.
Tarjan, R. E. and Yao, A. C.-C. Storing a sparse table, Comm. ACM, Vol 22, No 11, 606–611, Nov 1979.
Warnock, J. E. A hidden-surface algorithm for computer generated half-tone pictures, Univ. Utah, Dept. Computer Sci. TR 4–15, 1969.
Willard, D. E. Balanced forests of h-d trees as a dynamic data structure, Harvard Univ., Aiken Computer Lab Report TR-23, 1978.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1981 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Nievergelt, J. (1981). Trees as data and file structures. In: Astesiano, E., Böhm, C. (eds) CAAP '81. CAAP 1981. Lecture Notes in Computer Science, vol 112. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-10828-9_53
Download citation
DOI: https://doi.org/10.1007/3-540-10828-9_53
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-10828-3
Online ISBN: 978-3-540-38716-9
eBook Packages: Springer Book Archive