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.
- 1.Cartwright, R., "A Constructive Approach to Axiomatic Data Type Definitions," Proc. LISP Conference, pp.46-55 (1980). Google ScholarDigital Library
- 2.DOD,, Reference Manual for the Ada Programming Language, United States Department of Defense, Washington, DC (Jul 1980).Google Scholar
- 3.Dahl, O. J., E. W. Dijkstra, and C. A. R. Hoare, Structured Programming, Academic Press, New York (1972). Google Scholar
- 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 Scholar
- 5.Guttag, J. V. and J. J. Horning, "The Algebraic Specification of Abstract Data Types," Acta Informatica Vol. 10, pp.27-52 (1978).Google Scholar
- 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 Scholar
- 7.Kline, M., Why Johnny Can't Add: The Failure of the New Math, St. Martins Press, New York (1973).Google Scholar
- 8.Myers, G., Composite Structure Design, Van Nostrand, Reinhold, New York (1978). Google Scholar
- 9.Parnas, D. L., "On the Criteria To Be Used in Decomposing Systems into Modules," CACM Vol. 15(12) (December 1972). Google ScholarDigital Library
- 10.Reingold, E. M. and W. J. Hansen, Data Structures, Winthrop, Cambridge, 1982.Google Scholar
- 11.Rosenberg, A. L., "On Uniformly Inserting One Data Structure into Another," Comm ACM Vol. 24(2), pp.88-90 (Feb 1981).Google Scholar
- 12.Scott, D., "Data Types as Lattices," SIAM J. Comput. Vol. 5, pp.522-586 (1976).Google ScholarDigital Library
- 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 Scholar
- 14.Wirth, N., "Program Development by Stepwise Refinement," Comm. ACM Vol. 14(4), pp.221- 227 (Apr 1971). Google Scholar
- 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 Scholar
Index Terms
- The structure of “data structures”
Recommendations
Hybrid and custom data structures: evolution of the data structures course
ITiCSE '09The topic of data structures has historically been taught with two major focuses: first, the basic definition and implementation of a small set of basic data structures (e.g. list, stack, queue, tree, graph), and second, the usage of these basic data ...
Fast RNA structure alignment for crossing input structures
The complexity of pairwise RNA structure alignment depends on the structural restrictions assumed for both the input structures and the computed consensus structure. For arbitrarily crossing input and consensus structures, the problem is NP-hard. For ...
Hybrid and custom data structures: evolution of the data structures course
ITiCSE '09: Proceedings of the 14th annual ACM SIGCSE conference on Innovation and technology in computer science educationThe topic of data structures has historically been taught with two major focuses: first, the basic definition and implementation of a small set of basic data structures (e.g. list, stack, queue, tree, graph), and second, the usage of these basic data ...
Comments