Loading...

Data Structures and Algorithms in Java, 6th Edition

Share Icon

ISBN: 978-1-119-27802-3

March 2016

736 pages

Description

The design and analysis of efficient data structures has long been recognized as a key component of the Computer Science curriculum. Goodrich, Tomassia and Goldwasser's approach to this classic topic is based on the object-oriented paradigm as the framework of choice for the design of data structures. For each ADT presented in the text, the authors provide an associated Java interface. Concrete data structures realizing the ADTs are provided as Java classes implementing the interfaces. The Java code implementing fundamental data structures in this book is organized in a single Java package, net.datastructures. This package forms a coherent library of data structures and algorithms in Java specifically designed for educational purposes in a way that is complimentary with the Java Collections Framework.

About the Author

Michael Goodrich received his Ph.D. in Computer Science from Purdue University in 1987. He is currently a professor in the Department of Computer Science at John Hopkins University, and codirector of the Johns Hopkins Center for Algorithms Engineering. He is an editor for the International Journal of Computational Geometry & Applications, Journal of Computational and System Sciences, and Journal of Graph Algorithms and Applications.

Roberto Tamassia received his Ph.D. in Electrical and Computer Engineering from the University of Illinois at Urbana-Champaign in 1988. He is currently a professor in the Department of Computer Science at Brown University. He is also an editor for Computational Geometry: Theory and Applications, and the Journal of Graph Algorithms and Applications, and previously served on the editorial board of IEEE Transactions on Computers.

Michael Goldwasser, PhD in Computer Science from Stanford University, 1997; Associate Professor and Director of CS at St. Louis University; author of Object-Oriented Programming in Python, Pearson, 2008.

New to Edition
  • The authors redesigned the entire code base to increase clarity of presentation and consistency in style and convention, including reliance on type inference, as introduced in Java 7, to reduce clutter when instantiating generic types.
  • A new chapter, dedicated to the topic of recursion, provides comprehensive coverage of material that was previously divided within multiple chapters, while newly introducing the use of recursion when processing file systems.
  • The authors have added 38 new figures, and redesigned 144 existing figures.
  • New co-author Michael Goldwasser, Professor and Director of Computer Science at St. Louis University, has been added to the author team.
Features
  • Known for its clarity of presentation, DSA Java presents even the most difficult mathematical concepts in terms students can understand. 
  • A robust set of end-of-chapter problems are arranged by purpose – reinforcement problems assess understanding; creativity problems require students to apply concepts to writing “classes” (portions of a program); projects require students to write entire programs.
  • Java code examples are used extensively, with source code provided on the student companion site . Students learn to build data structures using a simple API which is consistent with the Java Collections Framework.  The authors describe the Java Collections Framework and point out how the API in use may differ from the Java Collections Framework.
  • An effective in-text art program illustrate data structures and algorithms in a clear, visual manner.  Visual proofs help students develop a better understanding of mathematical topics.
  • Coverage of Internet-related topics including hashing and text processing.
  • Discussion of object-oriented design and the Java programming language, including the Collections Framework and Design Patterns help students grasp both data structures and object-oriented design issues.  The book presents several object-oriented design patterns and important Java language constructs, like iterators and generic types, as well as all the traditional data structures topics.