skip to main content
10.1145/800175.809842acmconferencesArticle/Chapter ViewAbstractPublication Pagesacm-national-conferenceConference Proceedingsconference-collections
Article
Free Access

The structure of “data structures”

Published:01 January 1981Publication History

ABSTRACT

A data structure is defined to be a 4-tuple <D, F, S, A>. D and F are Domain and Function definitions which define the externally observable behavior; S and A are a Storage Structure and Algorithms which implement the functions. It is shown that this definition helps organize the field of data structures for presentation to students. In particular, the fact that the Storage Structure is a (lower level) data structure leads to a hierarchy of data structures. Following this hierarchy, a suitable order for presentation of the material is bits, words, arrays and records, lists, trees, and search tables.

Students deserve structured presentations. In a course on data structures this is especially important because otherwise the subject can seem like a series of unrelated tricks. Moreover, the material is on structure and will be used to build programs with structure, so the student should be given as many examples of good structure as possible.

There are a number of questions about how the material on data structures ought to be organized. Is the order arrays, stacks, records, lists appropriate with each subject being motivated by its predecessor? Or should stacks be last so their multiple implementations are derived from the alternate implementations of lists? Where should list node representations be described since one alternative uses lists themselves? This paper answers these questions by referring to the data structure definition presented in Section 1. This definition distinguishes between the externally observable behavior of the data structure and its implementation. Since the latter must be in terms of lower level data structures, the definition induces on data structures the hierarchy discussed in Section 2. Finally, Section 3 describes various topics that are omitted by this organization and why these include some of the more formal appraoches.

References

  1. 1.Cartwright, R., "A Constructive Approach to Axiomatic Data Type Definitions," Proc. LISP Conference, pp.46-55 (1980). Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2.DOD,, Reference Manual for the Ada Programming Language, United States Department of Defense, Washington, DC (Jul 1980).Google ScholarGoogle Scholar
  3. 3.Dahl, O. J., E. W. Dijkstra, and C. A. R. Hoare, Structured Programming, Academic Press, New York (1972). Google ScholarGoogle Scholar
  4. 4.Goguen, J., J. Thatcher, E. Wagner, and J. Wright, "Initial Algebra Semantics and Continuous Algebras," JACM Vol. 24(1), pp.68-95 (1977). Google ScholarGoogle Scholar
  5. 5.Guttag, J. V. and J. J. Horning, "The Algebraic Specification of Abstract Data Types," Acta Informatica Vol. 10, pp.27-52 (1978).Google ScholarGoogle Scholar
  6. 6.Hoare, C. A. R. and N. Wirth, "An Axiomatic Definition of the Programming Language PASCAL," Acta Informatica Vol. 2, pp.335-355 (1973).Google ScholarGoogle Scholar
  7. 7.Kline, M., Why Johnny Can't Add: The Failure of the New Math, St. Martins Press, New York (1973).Google ScholarGoogle Scholar
  8. 8.Myers, G., Composite Structure Design, Van Nostrand, Reinhold, New York (1978). Google ScholarGoogle Scholar
  9. 9.Parnas, D. L., "On the Criteria To Be Used in Decomposing Systems into Modules," CACM Vol. 15(12) (December 1972). Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10.Reingold, E. M. and W. J. Hansen, Data Structures, Winthrop, Cambridge, 1982.Google ScholarGoogle Scholar
  11. 11.Rosenberg, A. L., "On Uniformly Inserting One Data Structure into Another," Comm ACM Vol. 24(2), pp.88-90 (Feb 1981).Google ScholarGoogle Scholar
  12. 12.Scott, D., "Data Types as Lattices," SIAM J. Comput. Vol. 5, pp.522-586 (1976).Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13.Wirsing, M., P. Pepper, H. Partsch, W. Dosch, and M. Broy, "On Hierarchies of Abstract Data Types," TUM-I8007, Technical University of Munich (1980).Google ScholarGoogle Scholar
  14. 14.Wirth, N., "Program Development by Stepwise Refinement," Comm. ACM Vol. 14(4), pp.221- 227 (Apr 1971). Google ScholarGoogle Scholar
  15. 15.Wulf, W. A., Ralph London, and Mary Shaw, "An Introduction to the Construction and Verification of Alphard Programs," IEEE Transactions on Software Engineering Vol. SE-2(4), pp.253-265 (1976).Google ScholarGoogle Scholar

Index Terms

  1. The structure of “data structures”

                Recommendations

                Comments

                Login options

                Check if you have access through your login credentials or your institution to get full access on this article.

                Sign in
                • Published in

                  cover image ACM Conferences
                  ACM '81: Proceedings of the ACM '81 conference
                  January 1981
                  341 pages
                  ISBN:0897910494
                  DOI:10.1145/800175

                  Copyright © 1981 ACM

                  Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                  Publisher

                  Association for Computing Machinery

                  New York, NY, United States

                  Publication History

                  • Published: 1 January 1981

                  Permissions

                  Request permissions about this article.

                  Request Permissions

                  Check for updates

                  Qualifiers

                  • Article
                • Article Metrics

                  • Downloads (Last 12 months)24
                  • Downloads (Last 6 weeks)4

                  Other Metrics

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader