parent class, 122
parent node, 55
parents of nodes in a graph, 60
pattern-based approach to multiple dimensions, 179
patterns, examining a list of permutations for, 96
PDA (personal digital assistant), address book structure for, 190–191
PDF file, resume in, 9
perfect squares, counting, 164
permutation process, defining, 96
permutations, going through in a systematic order, 95
Permutations of a String problem, 95–97
persistence in finding a correct solution, 19
personal digital assistant (PDA), address book structure for, 190–191
pickup order, one change breaking the deadlock, 119
pictures, drawing to solve brainteasers, 173
pipe, as an analog for a network, 189
pixel density, in a line-drawing algorithm, 144
pixel-based raster image, converting a geometric drawing to, 147
pixels, algorithms changing the colors of, 143
place value, determining for each character digit, 84
Point class definition, 121–122
pointer(s)
advancing at different speeds, 51–52
passing to a variable, 32, 41
required for deletions from a linked list, 30
to a stack, 31
understanding, 25
pointer constant, 68
pointer misuse, C/C++, 28
points, falling inside a rectangle, 150
polymorphism
classic example of, 123–124
defined, 122
virtual methods used for, 127–128
pop operation
coding for, 34
possibilities for the interface to, 32
returning an error code, 33
on a stack, 30, 31
positive integers, as square roots of perfect squares, 164
postorder traversal of a node, 60
preemptive threading, 108
preorder traversal
of a binary search tree without using recursion, 62–64
coding using recursion, 62
of a node, 59
Preorder Traversal, No Recursion problem, 62–64
Preorder Traversal problem, 61–62
preparation
for job interviews, 201
for knowledge-based questions, 185
primary key, 131
adding, 133
primes, unique factor properties of, 163
printing of resumes, 210
problems
beware of simple, 161–162
Big-endian or Little-endian, 153–155
Binary Search, 92–95
Boat and Dock, 174–176
breaking into parts, 161
Bridge Crossing, 165–168
Bugs in removeHead, 40–41
Burning Fuses, 180, 182
Busy Waiting, 112–114
C linked list, 25
C++ linked list, 25
C++ versus Java, 186–187
Combinations of a String, 97–100
Company and Employee Database, 137–138
Count Open Lockers, 163–164
Counting Cubes, 176–179
Cryptography, 189–190
The Dining Philosophers, 117–119
Eighth of a Circle, 146–148
Escaping the Train, 183–184
Find the First Nonrepeated Character, 73–76
The Fox and the Duck, 179–180, 181
Friend Classes, 187
Garbage Collection, 188–189
getting stuck on, 19
Hash Tables versus Binary Search Trees, 190–191
Heavy Marble, 169–172
Inheritance, 187–188
Integer/String Conversion, 83–88
Interfaces and Abstract Classes, 125–126
List Flattening, 44–47
List Unflattening, 48–49
Lowest Common Ancestor, 64–66
Maintain Linked List Tail Pointer, 35–40
Max, No Aggregates, 139–140
Mth-to-Last Element of a Linked List, 41–44
Multiple Inheritance, 128–129
Network Performance, 189
New Cryptography Algorithms, 190
Null or Cycle, 49–52
Number of Ones, 155–157
Permutations of a String, 95–97
Preorder Traversal, 61–62
Preorder Traversal, No Recursion, 62–64
Rectangle Overlap, 149–153
Remove Specified Characters, 76–79
Reverse Words, 79–83
Simple SQL, 136–137
Stack Implementation, 30–35
Telephone Words, 100–105
Three Switches, 164–165
Three-Valued Logic, 140–141
Virtual Methods, 127–128
problem-solving ability, using brainteasers to assess, 159
problem-solving process in interviews, 17
Producer thread, writing with a Consumer thread, 114–117
Producer/Consumer problem, 114–117
professional development courses, 3
programmer, determining what kind you are, 1–2
programmer food chain, working up, 4
programming, reading about, 201
Programming Interviews Exposed mailing list, joining, 201
programming job, finding the kind you enjoy, 1–2
programming problems, approaches to, 15–23
projects, types of, 2
proofreading resumes, 210
properties. See attributes
proprietary, closed-source projects, 2
pseudo-events, queueing for processing by the event thread, 114–117
public key cryptography
compared to symmetric key, 189–190
described, 189, 190
public keys over insecure channels, 190
public profile. See online profile
public static function in Java or C#, 75–76
push operation
coding for, 33
on a stack, 30
taking a data argument and returning an error code, 32
push routine for a stack, 31
puzzles, training your mind, 201
Pythagorean theorem, 175