Note: Italicized page locators indicate a figure; tables are noted with a t.
abstract data types defined, 70
abstract
keyword, 73
abstract methods
access modifiers
activation record (stack frame), defined, 193
addresses, references as, 34
adjacency lists
adjacency matrix, 591
adjacent vertices, defined, 588
ADTs.
algorithms
amortized analysis, 233
(or user) level, of ADT, 70
array-based implementations
ArrayBlockingQueue
, 282
ArrayDeque
class, 256
ArrayList iterator
method, 512
asterisk (*), in import declarations, 21
average case complexity, 45
balance
operation, for balancing binary search tree, 469
base case, defined, 165
BasicSet1.java
, 334
BasicSet2.java
, 335
best case complexity, 45
binary operators, 132
boolean
type, 27
bounded time O (1), 53
BoundedQueueInterface
, code for, 222
breadth-first traversal
buckets, 523
collisions and, 523
buffers, queues and, 220
by reference variables, by value variables vs., 35
by value variables, by reference variables vs., 35
byte code, Java, 191
byte
type, 27
char
type, 27
children
Circle
class, 34, 73, 78, 84, 309
code for, 73
circular linked queue, 241
ClassPath
directories, 21
clone
operation, 143
clustering, 521
Comparable
keys, 507
Comparable
objects, 442
Comparator
object, 507
compare
method, 661
compareTo
method, 308, 661, 662
operation consistency, 315
comparison operator (==), 37
compilation units, multiple, packages with, 20
complete binary tree, 557
complete directed graph, 587
complete graphs, 586
complete undirected graph, 587
concurrency, 283
Java Library Collection classes and, 282
ConcurrentLinkedQueue
, 282
constant time, 53
constants, capitalization of, 4
CustomerGenerator
class
cycle, defined, 586
DaysBetween
program, code for, 11
DecimalFormat
class, 472
depth-first searching, 81, 598–602
code for, 605
depth-first traversal
depth of the recursion, defined, 195
dequeue
operation, 219
descendants, in binary trees, defined, 424
Dictionary
class, 283
digraph, 584
direct addressing, 33
direct recursion, defined, 166
directed graph (digraph), 587, 588
defined, 584
disconnected graph, 586
disjoint subtrees, 423
DLLNode
class, 253
double ended queue, 251
with two references, 388
dynamic binding, 19
dynamic memory management, defined, 37
dynamic programming, 200
getIterator
GlassQueueInterface
class, 248–250, 249
code for, 249
graph ADT, specification of, 589.
graphical user interface (GUI), 107
graphs, 31
growth rates, comparison of, 54t
list-related classes and interfaces, 409
hash code, 526
hash table, 516
hashCode
method, 529
hashing
HashMap
class, 283
HashSet
class, 283
HashTable
class, 283
header node, 381
heap sort, general approach of, 652
heap values, in array representation, 562
HeapPriQ
class
hierarchical relationships, trees and modeling of, 423
hybrid data structures, 541
immutable objects, 13
import statements, forms of, 21
indexed lists, 346
IndexOutOfBoundsException
, 346
indirect addressing, 33
indirect recursion
infix notation, 132
Inner class
, iterator class, 353
input size, 46
interface
keyword, 72
interfaces
ITDArrayBoundedQueue
, 235
iteration
iterative solution, for factorial, 167
iterator
large integers
LargeInt
class, 393
leaf
leaf nodes, removing, 461
level-order traversal, 426
LIFO.
lilian
method, 10
linear linked lists, traversals, 426
linear probing
linear time, O(N), 53
link-based implementations
LinkedBlockingQueue
, 282
LinkedCollection
class, 334
LinkedGlassQueue
class, 250
LinkedList
class, 381
LinkedQueue
class, 237
list-related classes and interfaces, 409
LLNode
class, 113–115, 115, 122, 125, 129
code for, 115
logarithmic time, O (log2N), 53
long
type, 27
package access, 5
packages, 5
Palindrome
class
palindromes
Parallelogram
class, 75
paths, between vertices, 586
pixels, defined, 186
pointers, references as, 34
polymorphism
postconditions, defined, 72
postfix expressions
preconditions, defined, 71
primitive types, 27
primitive variables, 33
heaps used for implementing, 657
PriQueueInterface
, 565
programming
R-trees, 481
Random
class, 260
RDN.
recPrintList
method
recRev-PrintList
method
stacking and, 196
reference variables, 33
rehashing, 525
reheapDown
algorithm, 571
reheapDown
method, 657
reheapDown
operation
reheapUp
algorithm, 569
reheapUp
method, code for, 569
reheapUp
operation, 560
in action, 568
Relative Day Number, 7
remove
operation, 460–463, implementing Binary Search Tree ADT and
reserved words, in Java, 2
reusable software, 146
root
root node
run-time binding, 19
run-time (system) stack, defined, 194
Runnable
interface, 271
RunTimeException
class, 346
Scanner
class, 10
selection sort
self-organizing (or self-adjusting) lists, 664
self-referential class, defined, 113
shape property, 557
short
type, 27
shortBubble
, 638
order of magnitude for, 666t
siblings, in trees, 424
Simulation
class, 263
Smaller-Caller Question
software, reusable, 146
sorted array based implementation
sorted linked list
space considerations, 660
Square
class, 75
Stack
class, 282
stack operations
storing information by reference, dangers of, 607
subclasses, 5
inheritance and, 12
subdirectories, packages and, 21
subtrees, 423
superclasses, 5
inheritance and, 12
SyncArrayBoundedQueue
class, 282
SyncCounter
class, code for, 276
Synchronous-Queue
, 282
system stack, defined, 194
well-formed expression algorithm, 103
3.16.75.165