search for books and compare prices
Tables of Contents for Classic Data Structures in Java
Chapter/Section Title
Page #
Page Count
Preface
xv
 
The Management of Complexity
1
22
The Control of Complexity
2
1
Abstraction, Information Hiding, and Layering
3
3
Division into Parts
6
5
Encapsulation and Interchangeability
6
1
Interface and Implementation
7
1
The Service View
8
1
Repetition and Recursion
9
2
Composition
11
3
Layers of Specialization
14
2
Multiple Views
16
1
Patterns
16
2
Chapter Summary
18
5
Further Information
19
1
Study Questions
20
1
Exercises
21
1
Programming Projects
21
2
Abstract Data Types
23
26
What is a Type?
24
6
Classes
25
2
Interfaces and Polymorphism
27
3
Abstract Data Types
30
4
The Fundamental ADTs
34
11
Collection
34
2
Bag
36
1
Set
37
1
Sorted, Comparator, and Comparable
38
1
Stack, Queue, and Deque
39
2
FindMin and FindNth
41
1
Indexed Collections and Sorting Algorithms
42
1
Map
43
1
Matrix
44
1
Chapter Summary
45
4
Further Information
46
1
Study Questions
46
1
Exercises
46
1
Programming Projects
47
2
Algorithms
49
20
Characteristics of Algorithms
50
2
Recipes as Algorithms
52
1
Analyzing Computer Algorithms
53
7
Specification of the Input
54
2
Description of the Result
56
1
Instruction Precision
57
1
Time to Execute
57
3
Space Utilization
60
1
Recursive Algorithms
60
4
Chapter Summary
64
5
Further Information
64
1
Study Questions
65
1
Exercises
65
1
Programming Projects
66
3
Execution-Time Measurement
69
28
Algorithmic Analysis and Big-Oh Notation
70
1
Execution Time of Programming Constructs
71
9
Constant Time
71
1
Simple Loops
72
3
Nested Loops
75
2
While Loops
77
2
Function Calls
79
1
Summing Algorithmic Execution Times
80
4
The Importance of Fast Algorithms
84
2
Benchmarking Execution Times
86
4
Chapter Summary
90
7
Further Information
91
1
Study Questions
91
1
Exercises
91
3
Programming Projects
94
3
Increasing Confidence in Correctness
97
20
Program Proofs
97
12
Invariants
98
2
Analyzing Loops
100
3
Asserting That the Outcome is Correct
103
1
Progress toward an Objective
104
1
Manipulating Unnamed Quantities
105
1
Function Calls
106
1
Recursive Algorithms
107
2
Program Testing
109
2
Chapter Summary
111
6
Further Information
111
1
Study Questions
111
1
Exercises
112
2
Programming Projects
114
3
Vectors
117
208
The Vector Data Structure
117
10
Enumeration
127
1
Application-Silly Sentences
128
3
Application-Memory Game
131
5
Application-Shell Sort
136
4
A Visual Vector
140
4
Chapter Summary
144
181
Further Information
144
1
Study Questions
144
1
Exercises
145
4
Programming Projects
149
169
Study Questions
318
1
Exercises
319
2
Programming Projects
321
4
Trees
325
32
Binary Trees
330
3
Vector Implementation
333
1
Dynamic Memory Implementation
334
4
Application--Guess the Animal Game
335
3
Tree Traversals
338
8
Postorder Tree Traversal
340
3
Preorder Tree Traversal
343
1
In-Order Tree Traversal
344
1
Level-Order Tree Traversal
345
1
Euler Tours
346
5
Binary Tree Representation of General Trees
351
2
Chapter Summary
353
4
Further Information
354
1
Study Questions
354
1
Exercises
354
1
Programming Projects
355
2
Binary Search Trees
357
26
The Importance of Balance
365
4
AVL Trees
369
5
Application-Tree Sort
374
2
Chapter Summary
376
7
Further Information
377
1
Study Questions
377
1
Exercises
378
2
Programming Projects
380
3
Priority Queues
383
34
The Priority Queue ADT
384
2
Heaps
386
11
Skew Heaps
397
6
Application-Discrete Event-Driven Simulation
403
6
A Framework for Simulations
405
3
Ice Cream Store Simulation
408
1
Chapter Summary
409
8
Further Information
410
1
Study Questions
410
1
Exercises
411
2
Programming Projects
413
4
Hash Tables
417
34
Hash Functions
418
6
Hash Functions
421
2
Hash Functions in the Java Standard Library
423
1
Collision Resolution
424
3
Hash Table Sorting Algorithms
427
6
Counting Sort
428
2
Radix Sorting
430
3
Open-Address Hashing
433
4
The Hashtable Data Type
437
3
Application-Ranking Poker Hands
440
2
Chapter Summary
442
9
Further Information
443
1
Study Questions
444
1
Exercises
445
2
Programming Projects
447
4
Maps
451
28
Example Programs
453
10
Silly-Sentence Generation, Revisited
453
5
An Address Database
458
3
A Concordance
461
2
An Implementation
463
6
Searching Problems and Maps
469
2
Chapter Summary
471
8
Further Information
471
1
Study Questions
472
1
Exercises
473
1
Programming Projects
474
5
Sets
479
28
Changing a Bag into a Set
480
2
Set Union, Intersection, and Differences
482
3
Sorted List Sets
485
5
Application-A Spelling Checker
490
1
The Union-Find Problem
491
4
The BitSet Abstraction
495
3
Application-Prime Number Sieve
498
2
Chapter Summary
500
7
Further Information
501
1
Study Questions
501
1
Exercises
501
2
Programming Projects
503
4
Matrices
507
24
Java Matrices
507
3
Application-Rain Game
510
4
Binary Matrices
514
1
Application--The Game of Life
515
4
Sparse Vectors
519
2
An Application-(Almost) Infinitely Large Hash Tables
521
2
Sparse Matrices
523
1
Noninteger Keys
524
2
Chapter Summary
526
5
Further Information
526
1
Study Questions
527
1
Exercises
527
1
Programming Projects
528
3
Graphs
531
28
Adjacency-Matrix Representation
533
4
Edge-List Representation
537
4
Weighted-Graph Representation
541
8
Weighted-Adjacency Matrix
542
1
Floyd's Algorithm
542
1
Weighted-Edge-List Representation
543
1
Dijkstra's Algorithm
544
5
Other Graph Problems
549
4
Topological Sorting
549
1
Depth-First Search Spanning Tree
550
1
Problem-The Traveling Salesman
551
2
Chapter Summary
553
6
Further Information
553
1
Study Questions
553
1
Exercises
554
2
Programming Projects
556
3
APPENDIX A Java Syntax
559
14
A.1 Program Structure
559
5
A.1.1 Packages
559
1
A.1.2 Import Declaration
560
1
A.1.3 Class Declaration
560
1
A.1.4 Interface Declaration
561
1
A.1.5 Method Declaration
561
2
A.1.6 Constructors
563
1
A.1.7 Data Field Declaration
563
1
Statements
564
3
A.2.1 Declaration Statement
564
1
A.2.2 Assignment Statement
564
1
A.2.3 Procedure Calls
564
1
A.2.4 If Statement
565
1
A.2.5 switch Statement
565
1
A.2.6 while Statement
566
1
A.2.7 for Statement
566
1
A.2.8 return Statement
566
1
A.2.9 throw Statement
567
1
A.2.10 try Statement
567
1
A.3 Expressions
567
4
A.3.1 Literal
568
1
A.3.2 Variables
568
1
A.3.3 Data Field and Method Access
569
1
A.3.4 Operators
570
1
A.3.5 Object Creation
570
1
A.3.6 Arrays
571
1
A.4 Files
571
2
Appendix B Import Libraries
573
4
Appendix C Data Structures in the Java Standard Library
577
6
C.1 Collection
577
1
C.2 Enumerators and lterators
578
1
C.3 Vectors
578
1
C.4 Lists
579
1
C.5 Stack, Queue, and Deque
580
1
C.6 Priority Queue
580
1
C.7 Binary Search Tree
580
1
C.8 Hash Tables
581
1
C.9 Set
581
1
C.10 Map
582
1
Bibliography
583
6
Index
589