
Data Structures and Algorithms in Java, 5e Title Landing Page
Wiley (Publisher)
5th Edition
Published on 27. January 2010
Book
Hardback
736 pages
978-0-470-38326-1 (ISBN)
Article exhausted; check for reprint
Description
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.
More details
Edition
5th edition
Language
English
Place of publication
New York
United States
Target group
College/higher education
Dimensions
Height: 233 mm
Width: 198 mm
Thickness: 30 mm
Weight
1175 gr
ISBN-13
978-0-470-38326-1 (9780470383261)
Copyright in bibliographic data and cover images is held by Nielsen Book Services Limited or by the publishers or by their respective licensors: all rights reserved.
Schweitzer Classification
Other editions
New editions

Michael T. Goodrich | Roberto Tamassia | Michael H. Goldwasser
Data Structures and Algorithms in Java
Book
07/2014
6th Edition
Wiley
€210.50
Article is exhausted; no reprint
Previous edition

Michael T. Goodrich | Roberto Tomassia
Data Structures and Algorithms in Java
Book
08/2005
4th Edition
Wiley
€49.90
Article exhausted; check for reprint
Persons
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.
Content
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.
Bibliography.
Index.
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.
Bibliography.
Index.