Trees as data and file structures

  • J. Nievergelt
Invited Lectures
Part of the Lecture Notes in Computer Science book series (LNCS, volume 112)


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.


Hash Table Central Memory Balance Tree Binary Search Tree Disk Access 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [AHU 74]
    Aho, A. V., Hopcroft, J. E. and Ullman, J. D. The design and analysis of computer algorithms, Addison-Wesley, 1974.Google Scholar
  2. [AL 62]
    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.Google Scholar
  3. [AK 75]
    Amble, O. and Knuth, D. E. Ordered hash tables, Computer J., Vol 18, 135–142, 1975.Google Scholar
  4. [Be 79a]
    Bentley, J. L. Decomposable searching problems, Inform. Proc. Letters, Vol 8, No 5, 244–251, 1979.Google Scholar
  5. [Be 79b]
    Bentley, J. L. Multidimensional binary search trees in database applications IEEE Trans. Software Engr., Vol 5, No 4, 333–340, July 1979.Google Scholar
  6. [BM 72]
    Bayer, R. and McCreight, E. M. Organization and maintenance of large ordered indexes, Acta Informatica, Vol 1, 173–189, 1972.Google Scholar
  7. [BS 77]
    Bayer, R. and Schkolnick, M. Concurrency of operations on B-trees, Acta Informatica, Vol 9, 1–21, 1977.Google Scholar
  8. [BM 78]
    Blum, N. and Mehlhorn, K. On the average number of rebalancing operations in weight-balanced trees, Theor. Comp. Sci, 1978.Google Scholar
  9. [CW 77]
    Carter, J. L. and Wegman, M. Universal classes of hash functions, Report RC 6687, IBM Yorktown Heights, 1977.Google Scholar
  10. [Ci 80]
    Cichelli, R. J. Minimal perfect hash functions made simple, Comm. ACM, Vol 23, No 1, 17–19, Jan 1980.Google Scholar
  11. [Co 79]
    Comer, D. The ubiquitous B-tree, ACM Computing Surveys, Vol 11, No 2, 121–138, June 1979.Google Scholar
  12. [EL 80]
    Edelsbrunner, H. and van Leeuwen, J. Multidimensional algorithms and data structures (Bibliography) Bulletin of the EATCS, 1980.Google Scholar
  13. [FNPS 79]
    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.Google Scholar
  14. [Fr 60]
    Fredkin, E. Trie memory, Comm. ACM, Vol 3, 490–500, 1960.Google Scholar
  15. [GN 45]
    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.Google Scholar
  16. [GS 78]
    Guibas, L. and Sedgewick, R. A dichromatic framework for balanced trees, Proc. 19-th Annual Symp. Found. of Computer Sci., 8–21, IEEE, 1978.Google Scholar
  17. [HN 81]
    Hinterberger, H. and Nievergelt, J., Concurrent access control in extendible hash files, (submitted)Google Scholar
  18. [Kn 68], [Kn 73]
    Knuth, D. E. The art of computer programming, Addison-Wesley, Vol 1, Fundamental Algorithms, 1968, Vol 3, Sorting and Searching, 1973.Google Scholar
  19. [KL 80]
    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.Google Scholar
  20. [La 78]
    Larson, P. Dynamic hashing, BIT, Vol 18, 184–201, 1978.Google Scholar
  21. [La 80]
    Larson, P. Linear hashing with partial expansions, Proc. 6-th Conf. on Very Large Databases, Montreal, Oct 1980.Google Scholar
  22. [LM 80]
    van Leeuwen, J. and Maurer, H. A. Dynamic systems of static data structures, Univ. Graz, Institut Informationsver. Report 42, Jan 1980.Google Scholar
  23. [Li 78]
    Litwin, W. Virtual hashing: a dynamically changing hashing, Proc. 4-th Conf. Very Large Databases, Berlin, 1978, 517–523.Google Scholar
  24. [Li 80]
    Litwin, W. Linear hashing: a new tool for file and table addressing, Proc. 6-th Conf. on Very Large Databases, Montreal, Oct 1980.Google Scholar
  25. [Me 80]
    McCreight, E. M. Efficient algorithms for enumerating intersecting intervals and rectangles, XEROX PARC Report CSL-80-9, 1980.Google Scholar
  26. [Me 78]
    Mehlhorn, K. Arbitrary weight changes in dynamic trees, RAIRO, Th CSGoogle Scholar
  27. [Me 80]
    Mehlhorn, K. Lower bounds on the efficiency of static to dynamic transforms of data structures, Univ. Saarland Report 1980.Google Scholar
  28. [NR 73]
    Nievergelt, J. and Reingold, E. M. Binary search trees of bounded balance, SIAM J. Computing, Vol 2, No 1, 33–43, Mar 1973.Google Scholar
  29. [Ni 74]
    Nievergelt, J. Binary search trees and file organization, ACM Computing Surveys, Vol 6, No 3, 195–207, Sep 1974.Google Scholar
  30. [NSH 81]
    Nievergelt, J., Seveik, K. and Hinterberger, H. The grid file: a dynamic multikey access structure, (in preparation)Google Scholar
  31. [NS 56]
    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.Google Scholar
  32. [Ol 81]
    Olivie', H. J. Half-balanced binary search trees, Report 81-01, IHAM, B-2000 Antwerp, 1981.Google Scholar
  33. [Ro 78]
    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.Google Scholar
  34. [SB 79]
    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.Google Scholar
  35. [Sp 77]
    Sprugnoli, R. Perfect hashing functions: a single probe retrieving method for static sets, Comm. ACM, Vol 20, No 11, 841–850, Nov 1977.Google Scholar
  36. [TY 79]
    Tarjan, R. E. and Yao, A. C.-C. Storing a sparse table, Comm. ACM, Vol 22, No 11, 606–611, Nov 1979.Google Scholar
  37. [Wa 69]
    Warnock, J. E. A hidden-surface algorithm for computer generated half-tone pictures, Univ. Utah, Dept. Computer Sci. TR 4–15, 1969.Google Scholar
  38. [Wi 78]
    Willard, D. E. Balanced forests of h-d trees as a dynamic data structure, Harvard Univ., Aiken Computer Lab Report TR-23, 1978.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1981

Authors and Affiliations

  • J. Nievergelt
    • 1
  1. 1.Informatik, ETHZurich

Personalised recommendations