Print this page Share

Data Structures and Alg. in Java 5e

February 2010, ©2010
Data Structures and Alg. in Java 5e (EHEP001602) cover image


The design and analysis of efficient data structures has long been recognized as a key component of the Computer Science curriculum. Goodrich and Tomassia'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.

See More

Table of Contents

1 Java Primer.

1.1 Getting Started: Classes, Types, and Objects.

1.2 Methods.

1.3 Expressions.

1.4 Control Flow.

1.5 Arrays.

1.6 Simple Input and Output.

1.7 An Example Program.

1.8 Nested Classes and Packages.

1.9 Writing a Java Program.

1.10 Exercises.

2 Object-Oriented Design.

2.1 Goals, Principles, and Patterns.

2.2 Inheritance and Polymorphism.

2.3 Exceptions.

2.4 Interfaces and Abstract Classes.

2.5 Casting and Generics.

2.6 Exercises.

3 Indices, Nodes, and Recursion.

3.1 Using Arrays.

3.2 Singly Linked Lists.

3.3 Doubly Linked Lists.

3.4 Circularly Linked Lists and Linked-List Sorting.

3.5 Recursion.

3.6 Exercises.

4 Analysis Tools.

4.1 The Seven Functions Used in This Book.

4.2 Analysis of Algorithms.

4.3 Simple Justification Techniques.

4.4 Exercises.

5 Stacks, Queues, and Deques.

5.1 Stacks.

5.2 Queues.

5.3 Double-Ended Queues.

5.4 Exercises.

6 List and Iterator ADTs.

6.1 Array Lists.

6.2 Node Lists.

6.3 Iterators.

6.4 List ADTs and the Collections Framework.

6.5 Case Study: The Move-to-Front Heuristic.

6.6 Exercises.

7 Trees.

7.1 General Trees.

7.2 Tree Traversal Algorithms.

7.3 Binary Trees.

7.4 Exercises.

8 Heaps and Priority Queues.

8.1 The Priority Queue Abstract Data Type.

8.2 Implementing a Priority Queue with a List.

8.3 Heaps.

8.4 Adaptable Priority Queues.

8.5 Exercises.

9 Hash Tables, Maps, and Skip Lists.

9.1 Maps.

9.2 Hash Tables.

9.3 Ordered Maps.

9.4 Skip Lists.

9.5 Dictionaries.

9.6 Exercises.

10 Search Trees.

10.1 Binary Search Trees.

10.2 AVL Trees.

10.3 Splay Trees.

10.4 (2,4) Trees.

10.5 Red-Black Trees.

10.6 Exercises.

11 Sorting, Sets, and Selection.

11.1 Merge-Sort.

11.2 Quick-Sort.

11.3 Studying Sorting through an Algorithmic Lens.

11.4 Sets and Union/Find Structures.

11.5 Selection.

11.6 Exercises.

12 Strings and Dynamic Programming.

12.1 String Operations.

12.2 Dynamic Programming.

12.3 Pattern Matching Algorithms.

12.4 Text Compression and the Greedy Method.

12.5 Tries.

12.6 Exercises.

13 Graph Algorithms.

13.1 Graphs.

13.2 Data Structures for Graphs.

13.3 Graph Traversals.

13.4 Directed Graphs.

13.5 Shortest Paths.

13.6 Minimum Spanning Trees.

13.7 Exercises.

14 Memory Management and B-Trees.

14.1 Memory Management.

14.2 External Memory and Caching.

14.3 External Searching and B-Trees.

14.4 External-Memory Sorting.

14.5 Exercises.

A Useful Mathematical Facts.



See More

Author Information

Professors Goodrich and Tamassia are well-recognized researchers in data structures and algorithms. Michael Goodrich received his Ph.D. in Computer Science from Purdue University. He is currently a professor in the Department of Computer Science at the University of California, Irvine. Roberto Tamassia received his Ph.D. in Electrical and Computer Engineering from the University of Illinois at Urbana-Champaign. He is currently a professor in the Department Science at Brown University. Both professors are winners of numerous teaching awards for their teaching of data structures and algorithms.
See More

New To This Edition

  • Additional Figures: Topics and their mathematical analysis are presented as visually as possible without sacrificing the rigor or content.
  • Increased and Updated Examples: Student-motivating topics such as Internet, Biology, Medicine, Science and Engineering, Business and Finance, Sports, Entertainment and Community Service are used as examples to draw students into the material.
  • Additional Exercises: The existing exercises have been throughly updated and new exercises added to this edition.
  • New Powerpoint Slides: Updated Powerpoint slides are provided to instructors free upon adoption.
See More

The Wiley Advantage

  • 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 web site www.datastructures.net. Students learn to build data structures using a simple API which is very 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.

  • Online animations and 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.
See More
Instructors Resources
Wiley Instructor Companion Site
See More
See Less
Students Resources
Wiley Student Companion Site
See More
See Less
Purchase Options
Wiley E-Text   
Data Structures and Algorithms in Java, 5th Edition
ISBN : 978-0-470-46046-7
736 pages
June 2010, ©2009
$62.50   BUY

Data Structures and Algorithms in Java, 5th Edition
ISBN : 978-0-470-38326-1
736 pages
February 2010, ©2010
$159.95   BUY

Related Titles

Back to Top