Table of Contents
Note: Each chapter concludes with a summary, vocabulary, problems, and projects.
Part I: Object-Oriented Programming
1 Encapsulation. Software Development. Classes and Objects. Using Objects.
2 Polymorphism. Reference Types. Arrays. Interfaces. Overloading.
3 Inheritance. Extending a Class. The Object Class. Packages and Access Levels.
Part II: Linear Structures
4 Stacks and Queues. The Stack Interface. The Call Stack. Exceptions. The Queue Interface.
5 Array-Based Structures. Shrinking and Stretching Arrays. Implementing Stacks and Queues. The List Interface. Iterators. The Java Collections Framework: A First Look.
6 Linked Structures. List Nodes. Stacks and Queues. The LinkedList Class. The Java Collections Framework Revisited
Part III: Algorithms
7 Analysis of Algorithms. Timing. Asymptotic Notation. Counting Steps. Best, Worst, and Average Case. Amortized Analysis.
8 Searching and Sorting. Linear Search. Binary Search. Insertion Sort. The Comparable Interface. Sorting Linked Lists.
9 Recursion. Thinking Recursively. Analyzing Recursive Algorithms. Merge Sort. Quicksort. Avoiding Recursion.
Part IV: Trees and Sets
10 Trees. Binary Trees. Tree Traversal. General Trees
11 Sets. The Set Interface. Ordered Lists. Binary Search Trees. Hash Tables. The Java Collections Framework Again.
Part V: Advanced Topics
12 Advanced Linear Structures. Bit Vectors. Sparse Arrays. Contiguous Representation of Multidimensional Arrays. Advanced Searching and Sorting
13 Strings. Strings and StringBuilders. String Matching.
14 Advanced Trees. Heaps. Disjoint Set Clusters. Digital Search Trees. Red-Black Trees.
15 Graphs. Terminology. Representation. Graph Traversal. Topological Sorting. Shortest Paths. Minimum Spanning Trees.
16 Memory Management. Explicit Memory Management. Automatic Memory Management.
17 Out to the Disk. Interacting With Files. Compression. External Sorting. B-Trees.
Review of Java
Unified Modeling Language