| |
| |
| |
Java Primer | |
| |
| |
| |
Getting Started: Classes, Types, and Objects | |
| |
| |
| |
Methods | |
| |
| |
| |
Expressions | |
| |
| |
| |
Control Flow | |
| |
| |
| |
Arrays | |
| |
| |
| |
Simple Input and Output | |
| |
| |
| |
An Example Program | |
| |
| |
| |
Nested Classes and Packages | |
| |
| |
| |
Writing a Java Program | |
| |
| |
| |
Exercises | |
| |
| |
| |
Object-Oriented Design | |
| |
| |
| |
Goals, Principles, and Patterns | |
| |
| |
| |
Inheritance and Polymorphism | |
| |
| |
| |
Exceptions | |
| |
| |
| |
Interfaces and Abstract Classes | |
| |
| |
| |
Casting and Generics | |
| |
| |
| |
Exercises | |
| |
| |
| |
Indices, Nodes, and Recursion | |
| |
| |
| |
Using Arrays | |
| |
| |
| |
Singly Linked Lists | |
| |
| |
| |
Doubly Linked Lists | |
| |
| |
| |
Circularly Linked Lists and Linked-List Sorting | |
| |
| |
| |
Recursion | |
| |
| |
| |
Exercises | |
| |
| |
| |
Analysis Tools | |
| |
| |
| |
The Seven Functions Used in This Book | |
| |
| |
| |
Analysis of Algorithms | |
| |
| |
| |
Simple Justification Techniques | |
| |
| |
| |
Exercises | |
| |
| |
| |
Stacks, Queues, and Deques | |
| |
| |
| |
Stacks | |
| |
| |
| |
Queues | |
| |
| |
| |
Double-Ended Queues | |
| |
| |
| |
Exercises | |
| |
| |
| |
List and Iterator ADTs | |
| |
| |
| |
Array Lists | |
| |
| |
| |
Node Lists | |
| |
| |
| |
Iterators | |
| |
| |
| |
List ADTs and the Collections Framework | |
| |
| |
| |
Case Study: The Move-to-Front Heuristic | |
| |
| |
| |
Exercises | |
| |
| |
| |
Trees | |
| |
| |
| |
General Trees | |
| |
| |
| |
Tree Traversal Algorithms | |
| |
| |
| |
Binary Trees | |
| |
| |
| |
Exercises | |
| |
| |
| |
Heaps and Priority Queues | |
| |
| |
| |
The Priority Queue Abstract Data Type | |
| |
| |
| |
Implementing a Priority Queue with a List | |
| |
| |
| |
Heaps | |
| |
| |
| |
Adaptable Priority Queues | |
| |
| |
| |
Exercises | |
| |
| |
| |
Hash Tables, Maps, and Skip Lists | |
| |
| |
| |
Maps | |
| |
| |
| |
Hash Tables | |
| |
| |
| |
Ordered Maps | |
| |
| |
| |
Skip Lists | |
| |
| |
| |
Dictionaries | |
| |
| |
| |
Exercises | |
| |
| |
| |
Search Trees | |
| |
| |
| |
Binary Search Trees | |
| |
| |
| |
AVL Trees | |
| |
| |
| |
Splay Trees | |
| |
| |
| |
(2,4) Trees | |
| |
| |
| |
Red-Black Trees | |
| |
| |
| |
Exercises | |
| |
| |
| |
Sorting, Sets, and Selection | |
| |
| |
| |
Merge-Sort | |
| |
| |
| |
Quick-Sort | |
| |
| |
| |
Studying Sorting through an Algorithmic Lens | |
| |
| |
| |
Sets and Union/Find Structures | |
| |
| |
| |
Selection | |
| |
| |
| |
Exercises | |
| |
| |
| |
Strings and Dynamic Programming | |
| |
| |
| |
String Operations | |
| |
| |
| |
Dynamic Programming | |
| |
| |
| |
Pattern Matching Algorithms | |
| |
| |
| |
Text Compression and the Greedy Method | |
| |
| |
| |
Tries | |
| |
| |
| |
Exercises | |
| |
| |
| |
Graph Algorithms | |
| |
| |
| |
Graphs | |
| |
| |
| |
Data Structures for Graphs | |
| |
| |
| |
Graph Traversals | |
| |
| |
| |
Directed Graphs | |
| |
| |
| |
Shortest Paths | |
| |
| |
| |
Minimum Spanning Trees | |
| |
| |
| |
Exercises | |
| |
| |
| |
Memory Management and B-Trees | |
| |
| |
| |
Memory Management | |
| |
| |
| |
External Memory and Caching | |
| |
| |
| |
External Searching and B-Trees | |
| |
| |
| |
External-Memory Sorting | |
| |
| |
| |
Exercises | |
| |
| |
A Useful Mathematical Facts | |
| |
| |
Bibliography | |
| |
| |
Index | |