CHAPTER 0: Introduction to Java
0.2.2 Using javadoc Notation for Method Specifications
0.2.3 Equality of References and Equality of Objects
CHAPTER 1: Object-Oriented Concepts
1.2 Abstract Methods and Interfaces
1.2.1 Abstract Data Types and Data Structures
1.2.2 An Interface and a Class that Implements the Interface
1.2.3 Using the FullTimeEmployee Class
1.3.1 The protected Visibility Modifier
1.3.2 Inheritance and Constructors
1.3.3 The Subclass Substitution Rule
1.6 The Unified Modeling Language
Programming Project 1.1: A CalendarDate Class
CHAPTER 2: Additional Features of Programming and Java
2.1 Static Variables, Constants and Methods
2.2.1 More Details on Unit Testing
2.3.2 Unit Testing and Propagated Exceptions
2.6.1 Pre-Initialization of Fields
2.8 Overriding the Object Class's equals Method
Programming Project 2.1: An Integrated Web Browser and Search Engine, Part 1
CHAPTER 3: Analysis of Algorithms
3.1 Estimating the Efficiency of Methods
3.1.2 Getting Big-O Estimates Quickly
3.1.3 Big-Omega, Big-Theta and Plain English
3.2.2 Overview of the Random Class
Programming Project 3.1: Let's Make a Deal!
CHAPTER 4: The Java Collections Framework
4.1.2 Storage Structures for Collection Classes
4.2 Some Details of the Java Collections Framework
4.2.3 The Collection Interface
Programming Project 4.1: Wear a Developer's Hat and a User's Hat
5.4.1 Analysis of the move Method
5.6.1 An A-maze-ing Application
Programming Project 5.1: Iterative Version of the Towers of Hanoi
Programming Project 5.2: Eight Queens
Programming Project 5.3: A Knight's Tour
Programming Project 5.4: Sudoku
Programming Project 5.5: Numbrix
6.2.1 Method Specifications for the ArrayList Class
6.2.2 A Simple Program with an ArrayList Object
6.2.3 The ArrayList Class's Heading and Fields
6.2.4 Definition of the One-Parameter add Method
6.3 Application: High-Precision Arithmetic
6.3.1 Method Specifications and Testing of the VeryLongInt Class
6.3.2 Fields in the VeryLongInt Class
6.3.3 Method Definitions of the VeryLongInt Class
Programming Project 6.1: Expanding the VeryLongInt Class
Programming Project 6.2: An Integrated Web Browser and Search Engine, Part 2
7.2 The SinglyLinkedList Class'A Singly-Linked, Toy Class!
7.2.1 Fields and Method Definitions in the SinglyLinkedList Class
7.2.2 Iterating through a SinglyLinkedList Object
7.3.1 A User's View of the LinkedList Class
7.3.2 The LinkedList Class versus the ArrayList Class
7.3.4 A Simple Program that uses a LinkedList Object
7.3.5 Fields and Heading of the LinkedList Class
7.3.6 Creating and Maintaining a LinkedList Object
7.3.7 Definition of the Two-Parameter add Method
7.4 Application: A Line Editor
7.4.1 Design and Testing of the Editor Class
7.4.2 Method Definitions for the Editor Class
7.4.3 Analysis of the Editor Class Methods
7.4.4 Design of the EditorUser Class
7.4.5 Implementation of the EditorUser Class
Programming Project 7.1: Expanding the SinglyLinkedList Class
Programming Project 7.2: Implementing the remove() Method in SinglyLinkedListIterator
Programming Project 7.3: Making a Circular Singly Linked List Class
Programming Project 7.4: Alternative Implementation of the LinkedList Class
Programming Project 7.5: Expanding the Line Editor
Programming Project 7.6: An Integrated Web Browser and Search Engine, Part 3
8.1.3 Stack Application 1: How Compilers Implement Recursion
8.1.4 Stack Application 2: Converting from Infix to Postfix
8.2.2 Implementations of the Queue Interface
8.2.4 Queue Application: A Simulated Car Wash
Programming Project 8.1: Making the Speedo's Car Wash Simulation More Realistic
Programming Project 8.2: Design, Test, and Implement a Program to Evaluate a Condition
Programming Project 8.3: Maze-Searching, Revisited
Programming Project 8.4: Fixing the Stack Class
9.2 Properties of Binary Trees
9.5 Traversals of a Binary Tree
CHAPTER 10: Binary Search Trees
10.1.1 The BinarySearchTree Implementation of the Set Interface
10.1.2 Implementation of the BinarySearchTree Class
10.2 Balanced Binary Search Trees
10.2.2 The Height of an AVL Tree
Programming Project 10.1: An Alternate Implementation of the Binary-Search-Tree Data Type
Programming Project 10.2: Printing a BinarySearchTree Object
Programming Project 10.3: The fixAfterInsertion Method
Programming Project 10.4: ThefixAfterDeletion Method
11.4.2 The Divide-and-Conquer Design Pattern
Programming Project 11.1: Sorting a File into Ascending Order
CHAPTER 12: Tree Maps and Tree Sets
12.1.1 The Height of a Red Black Tree
12.3 The TreeMap Implementation of the SortedMap Interface
12.3.1 The TreeMap Class's Fields and Embedded Entry Class
12.3.2 Method Definitions in the TreeMap Class
12.4 Application of the TreeMap Class: a Simple Thesaurus
12.4.1 Design, Testing, and Implementation of the Thesaurus Class
12.4.2 Design and Testing of the ThesaurusUser Class
12.4.3 Implementation of the ThesaurusUser Class
12.5.1 Implementation of the TreeSet Class
12.5.2 Application: A Simple Spell Checker
Programming Project 12.1: Spell Check, Revisited
Programming Project 12.2: Word Frequencies
Programming Project 12.3: Building a Concordance
Programming Project 12.4: Approval Voting
Programming Project 12.5: An Integrated Web Browser and Search Engine, Part 4
13.3 Implementation Details of the PriorityQueue Class
13.3.1 Fields and Method Definitions in the PriorityQueue Class
13.5 Application: Huffman Codes
13.5.2 Greedy Algorithm Design Pattern
13.5.3 The Huffman Encoding Project
Programming Project 13.1: Decoding a Huffman-Encoded Message
Programming Project 13.2: An Integrated Web Browser and Search Engine, Part 5
14.1 A Framework to Analyze Searching
14.3 The HashMap Implementation of the Map Interface
14.3.2 The Uniform Hashing Assumption
14.3.4 Implementation of the HashMap Class
14.3.5 Analysis of the containsKey Method
14.3.7 Creating a Symbol Table by Hashing
14.5 Open-Address Hashing (optional)
Programming Project 14.1: The Double Hashing Implementation of the HashMap Class
Programming Project 14.2: An Integrated Web Browser and Search Engine, Part 6
CHAPTER 15: Graphs, Trees, and Networks
15.5.3 Generating a Minimum Spanning Tree
15.5.4 Finding the Shortest Path through a Network
15.5.5 Finding the Longest Path through a Network?
15.6.1 Method Specifications and Testing of the Network Class
15.6.2 Fields in the Network Class
15.6.3 Method Definitions in the Network sClass
15.7 Backtracking Through A Network
Programming Project 15.1: The Traveling Salesperson Problem
Programming Project 15.2: Backtracking through a Network
Programming Project 15.3: Determining Critical Activities in a Project Network
Programming Project 15.4: An Integrated Web Browser and Search Engine, Part 7
APPENDIX 1: Additional Features of the JAVA Collections Framework
APPENDIX 2: Mathematical Background
APPENDIX 3: Choosing a Data Structure
A3.4 Comparison-Based Ordering
3.21.159.82