**Data Structures and Algorithms in Java 6th Edition by Michael T. Goodrich, ISBN-13: 978-1118771334**

[PDF eBook eTextbook]

- Publisher: Wiley; 6th edition (January 28, 2014)
- Language: English
- 720 pages
- ISBN-10: 1118771338
- ISBN-13: 978-1118771334

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.

**Table of Contents:**

Title Page

Copyright

Preface to the Sixth Edition

Prerequisites

Online Resources

Use as a Textbook

About the Authors

Additional Books by These Authors

Acknowledgments

Contents

Chapter 1: Java Primer

1.1 Getting Started

1.2 Classes and Objects

1.3 Strings, Wrappers, Arrays, and Enum Types

1.4 Expressions

1.5 Control Flow

1.6 Simple Input and Output

1.7 An Example Program

1.8 Packages and Imports

1.9 Software Development

1.10 Exercises

Chapter 2: Object-Oriented Design

2.1 Goals, Principles, and Patterns

2.2 Inheritance

2.3 Interfaces and Abstract Classes

2.4 Exceptions

2.5 Casting and Generics

2.6 Nested Classes

2.7 Exercises

Chapter 3: Fundamental Data Structures

3.1 Using Arrays

3.2 Singly Linked Lists

3.3 Circularly Linked Lists

3.4 Doubly Linked Lists

3.5 Equivalence Testing

3.6 Cloning Data Structures

3.7 Exercises

Chapter 4: Algorithm Analysis

4.1 Experimental Studies

4.2 The Seven Functions Used in This Book

4.3 Asymptotic Analysis

4.4 Simple Justification Techniques

4.5 Exercises

Chapter 5: Recursion

5.1 Illustrative Examples

5.2 Analyzing Recursive Algorithms

5.3 Further Examples of Recursion

5.4 Designing Recursive Algorithms

5.5 Recursion Run Amok

5.6 Eliminating Tail Recursion

5.7 Exercises

Chapter 6: Stacks, Queues, and Deques

6.1 Stacks

6.2 Queues

6.3 Double-Ended Queues

6.4 Exercises

Chapter 7: List and Iterator ADTs

7.1 The List ADT

7.2 Array Lists

7.3 Positional Lists

7.4 Iterators

7.5 The Java Collections Framework

7.6 Sorting a Positional List

7.7 Case Study: Maintaining Access Frequencies

7.8 Exercises

Chapter 8: Trees

8.1 General Trees

8.2 Binary Trees

8.3 Implementing Trees

8.4 Tree Traversal Algorithms

8.5 Exercises

Chapter 9: Priority Queues

9.1 The Priority Queue Abstract Data Type

9.2 Implementing a Priority Queue

9.3 Heaps

9.4 Sorting with a Priority Queue

9.5 Adaptable Priority Queues

9.6 Exercises

Chapter 10: Maps, Hash Tables, and Skip Lists

10.1 Maps

10.2 Hash Tables

10.3 Sorted Maps

10.4 Skip Lists

10.5 Sets, Multisets, and Multimaps

10.6 Exercises

Chapter 11: Search Trees

11.1 Binary Search Trees

11.2 Balanced Search Trees

11.3 AVL Trees

11.4 Splay Trees

11.5 ( 2,4) Trees

11.6 Red-Black Trees

11.7 Exercises

Chapter 12: Sorting and Selection

12.1 Merge-Sort

12.2 Quick-Sort

12.3 Studying Sorting through an Algorithmic Lens

12.4 Comparing Sorting Algorithms

12.5 Selection

12.6 Exercises

Chapter 13: Text Processing

13.1 Abundance of Digitized Text

13.2 Pattern-Matching Algorithms

13.3 Tries

13.4 Text Compression and the Greedy Method

13.5 Dynamic Programming

13.6 Exercises

Chapter 14: Graph Algorithms

14.1 Graphs

14.2 Data Structures for Graphs

14.3 Graph Traversals

14.4 Transitive Closure

14.5 Directed Acyclic Graphs

14.6 Shortest Paths

14.7 Minimum Spanning Trees

14.8 Exercises

Chapter 15: Memory Management and B-Trees

15.1 Memory Management

15.2 Memory Hierarchies and Caching

15.3 External Searching and B-Trees

15.4 External-Memory Sorting

15.5 Exercises

Bibliography

Index

* Michael T. 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.

**What makes us different?**

• Instant Download

• Always Competitive Pricing

• 100% Privacy

• FREE Sample Available

• 24-7 LIVE Customer Support

## Reviews

There are no reviews yet.