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