Abstract
Many applications require data structures that allow efficient access to their internal organization and to their elements. This feature has been implemented in some libraries with iterators or items. We present an alternative implementation, used in the Library of Data Structures for Java (JDSL). We refine the notion of an item and split it into two related concepts: position and locator. Positions are an abstraction of a pointer to a node or an index into an array; they provide direct access to the in-memory structure of the container. Locators add a level of indirection and allow the user to find a specific element even if the position holding the element changes.
Work supported in part by the U.S. Army Research OÆce under grant DAAH04-96-1-0013 and by the National Science Foundation under grants CCR-9625289, CCR-9732327, and CDA-9703080.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
R. Baker, M. Boilen, M. T. Goodrich, R. Tamassia, and B. A. Stibel. Testers and visualizers for teaching data structures. In Proc. ACM Symp. Computer Science Education, 1999.
J. Beall. Shortest path between two points in a polygon. http://www.cs.brown.edu/courses/cs252/projects/jeb/html/cs252proj.html.
M. Boilen, A. Schwerin, and J. Kloss. Personal communication.
T. H. Cormen, C. E. Leiserson, and R. L. Rivest. Introduction to Algorithms. MIT Press, Cambridge, MA, 1990.
A. Fabri et al. The CGAL kernel: A basis for geometric computation. In Proc. 1st ACM Workshop on Appl. Comput. Geom., pages 97–103, May 1996.
N. Gelfand, M. T. Goodrich, and R. Tamassia. Teaching data structure design patterns. In Proc. ACM Symp. Computer Science Education, 1998.
N. Gelfand and R. Tamassia. Algorithmic patterns for graph drawing. In Proc. Graph Drawing’ 98. Springer-Verlag, to appear.
M. T. Goodrich and J. Kloss. Tiered vector: An eÆcient dynamic array for JDSL. Poster at OOPSLA’98.
M. T. Goodrich and R. Tamassia. Data Structures and Algorithms in Java. Wiley, New York, NY, 1998.
D. Jackson. The TripartiteEmbeddedPlanarGraph. Manuscript.
K. Mehlhorn and S. Näher. LEDA: a platform for combinatorial and geometric computing. Commun. ACM, 38(1):96–102, 1995.
M. Nissen. Graph iterators: Decoupling graph structures from algorithms. Diploma thesis, Max-Planck-Institut für Informatik, Univ. Saarlandes, Saarbrücken, Germany, 1998.
B. Stroustrup. The C++ Programming Language (3rd Edition). Addison-Welsey, Reading, MA, 1997.
R. Tamassia, L. Vismara, and J. E. Baker. A case study in algorithm engineering for geometric computing. In Proc. Workshop on Algorithm Engineering, pages 136–145, 1997.
K. Weihe. Reuse of algorithms: Still a challenge to object-oriented programming. In Proc. OOPSLA’ 97, pages 34–48, 1997.
CS 16 home page. http://www.cs.brown.edu/courses/cs016.
ffGraph home page. http://www.fmi.uni-passau.de/~friedric/ffgraph/main.shtml.
Java 1.2 API. http://java.sun.com/products/jdk/1.2/docs/api/index.html.
JDSL home page. http://www.cs.brown.edu/cgc/jdsl.
JGL home page. http://www.objectspace.com/jgl.
LEDA home page. http://www.mpi-sb.mpg.de/LEDA.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Goodrich, M.T., Handy, M., Hudson, B., Tamassia, R. (1999). Accessing the Internal Organization of Data Structures in the JDSL Library. In: Goodrich, M.T., McGeoch, C.C. (eds) Algorithm Engineering and Experimentation. ALENEX 1999. Lecture Notes in Computer Science, vol 1619. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48518-X_8
Download citation
DOI: https://doi.org/10.1007/3-540-48518-X_8
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-66227-3
Online ISBN: 978-3-540-48518-6
eBook Packages: Springer Book Archive