Now revised to reflect the innovations of Java 5.0, Goodrich and
Tamassia's Fifth Edition of Data Structures and Algo-rithms in
Java 5.0 continues to offer accessible coverage of fundamental data
structures, using a consistent object-oriented framework. The
authors provide intuition, description, and analysis of fundamental
data structures and algorithms. Numerous illustrations, web-based
animations, and simplified mathematical analyses justify important
In this updated fifth edition, software engineers will find
accessible coverage of fundamental data structures using a
consistent object-oriented framework. The discussions throughout
the book now feature the latest information on Java JDK 1.6. This
includes updates to sections on Java programming basics, arrays,
stacks and queues, lists, priority queues, sorting methods, maps,
and memory. The coverage of the analysis language has been
simplified and more examples of algorithm analysis are presented.
Java implementations are provided of fundamental algorithms and of
sample applications of data structures. In addition, software
engineers will find all the Java source code, Java animations, and
interactive applets for data structures and algorithms, and an
educational version of the net.datastructures package on the
book's Web site.
Ausstattung/Bilder: 5th ed. 2011. XXII, 710 p. w. figs.
Best.Nr. des Verlages: 14539880000
Abmessung: 264mm x 224mm x 48mm
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.
1. Java Programming Basics.
2. Object-Oriented Design.
3. Arrays, Linked Lists, and Recursion.
4. Analysis Tools.
5. Stacks and Queues.
6. Lists and Iterators.
8. Priority Queues.
9. Maps and Dictionaries.
10. Search Trees.
11. Sorting, Sets, Selection.
12. Text Processing.
Appendix: Useful Mathematical Facts.
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.