
Data Structures and Algorithms in Java / Edition 5
by Michael T. Goodrich, Roberto TamassiaView All Available Formats & Editions
ISBN-10: 0470383267
ISBN-13: 9780470383261
Pub. Date: 01/07/2010
Publisher: Wiley
* This newest edition examines fundamental data structures by following a consistent object-oriented framework that builds intuition and analysis skills of data structures and algorithms
* Presents new figures, simpler language, and more practical motivations from real-world scenarios
* Numerous illustrations, Web-based animations, and simplified
Overview
* This newest edition examines fundamental data structures by following a consistent object-oriented framework that builds intuition and analysis skills of data structures and algorithms
* Presents new figures, simpler language, and more practical motivations from real-world scenarios
* Numerous illustrations, Web-based animations, and simplified mathematical analyses help readers quickly learn important concepts
Product Details
- ISBN-13:
- 9780470383261
- Publisher:
- Wiley
- Publication date:
- 01/07/2010
- Edition description:
- Fifth Edition
- Pages:
- 714
- Product dimensions:
- 7.70(w) x 9.30(h) x 1.20(d)
Table of Contents
1 | Java Programming | 1 |
1.1 | Classes, Types, and Objects | 3 |
1.2 | Methods | 11 |
1.3 | Expressions | 17 |
1.4 | Control Flow | 25 |
1.5 | Arrays | 32 |
1.6 | Simple Input and Output | 33 |
1.7 | An Example Program | 36 |
1.8 | Packages | 40 |
1.9 | Writing a Java Program | 42 |
1.10 | Utilities in the java.lang Package | 49 |
1.11 | Exercises | 51 |
2 | Object-Oriented Design | 55 |
2.1 | Goals and Principles | 56 |
2.2 | Inheritance and Polymorphism | 62 |
2.3 | Exceptions | 76 |
2.4 | Interfaces and Abstract Classes | 80 |
2.5 | Casting | 84 |
2.6 | Design Patterns | 89 |
2.7 | Exercises | 92 |
3 | Analysis Tools | 97 |
3.1 | What Is Running Time Anyway? | 98 |
3.2 | Pseudo-Code | 100 |
3.3 | A Quick Mathematical Review | 103 |
3.4 | Simple Justification Techniques | 106 |
3.5 | Analysis of Algorithms | 111 |
3.6 | Asymptotic Notation | 114 |
3.7 | Asymptotic Analysis | 120 |
3.8 | Exercises | 126 |
4 | Stacks, Queues, and Deques | 135 |
4.1 | Stacks | 136 |
4.2 | Queues | 149 |
4.3 | Linked Lists | 159 |
4.4 | Double-Ended Queues | 166 |
4.5 | Sample Case Study Application | 173 |
4.6 | Exercises | 179 |
5 | Vectors, Lists, and Sequences | 183 |
5.1 | Vectors | 185 |
5.2 | Lists | 194 |
5.3 | Sequences | 206 |
5.4 | Case Study: Bubble-Sort on a Sequence | 211 |
5.5 | Iterators | 214 |
5.6 | A Hierarchy of Sequence ADTs | 216 |
5.7 | Exercises | 219 |
6 | Trees | 227 |
6.1 | The Tree Abstract Data Type | 229 |
6.2 | Basic Algorithms on Trees | 236 |
6.3 | Binary Trees | 246 |
6.4 | Data Structures for Representing Trees | 263 |
6.5 | Exercises | 274 |
7 | Priority Queues | 285 |
7.1 | The Priority Queue Abstract Data Type | 287 |
7.2 | Implementing a Priority Queue with a Sequence | 295 |
7.3 | Heaps | 301 |
7.4 | The Locator Design Pattern | 319 |
7.5 | Exercises | 326 |
8 | Dictionaries | 333 |
8.1 | The Dictionary Abstract Data Type | 335 |
8.2 | Log Files | 340 |
8.3 | Hash Tables | 341 |
8.4 | The Ordered Dictionary ADT | 357 |
8.5 | Look-Up Tables | 358 |
8.6 | Skip Lists | 362 |
8.7 | Supporting Locators in a Dictionary | 370 |
8.8 | Exercises | 373 |
9 | Search Trees | 379 |
9.1 | Binary Search Trees | 382 |
9.2 | AVL Trees | 393 |
9.3 | Multi-Way Search Trees | 404 |
9.4 | (2,4) Trees | 408 |
9.5 | Red-Black Trees | 416 |
9.6 | External Searching | 434 |
9.7 | Exercises | 439 |
10 | Sorting, Sets, and Selection | 447 |
10.1 | Merge-Sort | 448 |
10.2 | The Set ADT | 461 |
10.3 | Quick-Sort | 467 |
10.4 | A Lower Bound on Comparison-Based Sorting | 478 |
10.5 | Bucket-Sort and Radix-Sort | 480 |
10.6 | Comparison of Sorting Algorithms | 483 |
10.7 | Selection | 484 |
10.8 | Exercises | 488 |
11 | Text Processing | 495 |
11.1 | String Operations | 497 |
11.2 | Pattern Matching Algorithms | 500 |
11.3 | Tries | 512 |
11.4 | Text Compression | 523 |
11.5 | Text Similarity Testing | 526 |
11.6 | Exercises | 531 |
12 | Graphs | 537 |
12.1 | The Graph Abstract Data Type | 539 |
12.2 | Data Structures for Graphs | 547 |
12.3 | Graph Traversal | 557 |
12.4 | Directed Graphs | 570 |
12.5 | Weighted Graphs | 584 |
12.6 | Shortest Paths | 585 |
12.7 | Minimum Spanning Trees | 596 |
12.8 | Exercises | 606 |
A Useful Mathematical Facts | 617 | |
Bibliography | 625 | |
Index | 630 |
Customer Reviews
Average Review: