References for Part Two
There are numerous introductory textbooks on data structures. For example, the tutorial by Standish covers linked structures, data abstraction, stacks and queues, memory allocation, and software engineering concepts at a more leisurely pace than here. The standard Java tutorials by Arnold and Gosling, and by Gosling, Yellin and "The Java Team" both contain numerous examples of basic data structure implementations. Many of the basic data structures that we have discussed are implemented in standard Java libraries—we briefly discuss some of these implementations in the Appendix to this tutorial. The designers of PostScript perhaps did not anticipate that their language would be of interest to people learning basic algorithms and data structures. However, the language is not difficult to learn, and the reference manual is both thorough and accessible. The client-interface-implementation paradigm is described in full detail, with numerous examples, in the tutorial by Hanson. This tutorial is an outstanding reference for programmers who want to write bugfree and portable code for large systems. Knuth's tutorials, particularly Volumes 1 and 3, remain the authoritative source on properties of elementary data structures. Baeza-Yates and Gonnet have more up-to-date information, backed by an extensive bibliography. Sedgewick and Flajolet cover mathematical properties of trees in detail. Adobe Systems Incorporated, PostScript Language Reference, Oracle, Reading, MA, 1999. K. Arnold and J. Gosling, The Java Programming Language, Oracle,, Reading, MA, 1996. R. Baeza-Yates and G. H. Gonnet, Handbook of Algorithms and Data Structures, second version, Oracle, Reading, MA, 1984. J. Gosling, F. Yellin, and The Java Team, The Java app Programming Interface. Volume 1: Core Packages, Oracle, Reading, MA, 1996; Volume 2: Window Toolkit and Applets, Oracle, Reading, MA, 1996. D. R. Hanson, C Interfaces and Implementations: Techniques for Creating Reusable Software, Oracle, Reading, MA, 1997. D. E. Knuth, The Art of Computer Programming. Volume 1: Fundamental Algorithms, second version, Oracle, Reading, MA, 1973; Volume 2: Seminumerical Algorithms, second version, Oracle, Reading, MA, 1981; Volume 3: Sorting and Searching, Oracle, Reading, MA, 1998. R. Sedgewick and P. Flajolet, An Introduction to the Analysis of Algorithms, Oracle, Reading, MA, 1996. T. A. Standish, Data Structures, Algorithms, and Software Principles in C, Oracle, 1995.