C.2 Terms Used in This Book 361
• portable code (3): Code (programs) are said to be portable if they can be moved
from one computer to another and still execute correctly. Java, for example, is
supposed to be “write once, run everywhere” under the premise that Java is so
completely standardized that a correct Java program can run on any machine
with a standard Java environment. Realizing that no serious program can really
be completely portable, the term is usually qualified to indicate the range of
supported machines, operating systems, compilers, and run-time environments.
• postorder traversal (10): When a binary tree is visualized in standard form,
with the root node at the top and the tree descending from the root, a
postorder traversal is accomplished by recursively visiting first the left child
of a node, then the right child, and then the node itself. See breadth-first
traversal, depth-first traversal, depth of a node, height of a node, inorder
traversal, preorder traversal.
• preorder traversal (10): When a binary tree is visualized in standard form,
with the root node at the top and the tree descending from the root, a
preorder traversal is accomplished by recursively visiting first the node itself,
then the left child of the node, and then the right child. See breadth-first
traversal, depth-first traversal, depth of a node, height of a node, inorder
traversal, postorder traversal.
• primary key (1, 9): The primary key used to store data is the key that is assumed
to be the key used for the “usual” access to the data. It will usually be the case
that the physical storage structure of the data is determined by the structure
that would make access by the primary key most efficient because access by the
primary key would be assumed to occur more often than access by any other key.
• priority queue (7): A priority queue is a data structure in which the “next
item to be processed” is at an identifiable “first” location in the structure, and
this property is reestablished after the first item is removed for processing, so
that the “next” item is present in steady state at the “first” location.
• probe (3, 12): The search through a set of data for an individual item usually
requires a process of locating a particular item, comparing that item’s key
against the sought-for key to determine if they match, and then repeating
the location and comparison until the match is found. Each such location and
comparison is called a probe, and search algorithms are evaluated based on
the expected number of probes required before the sought-for item is found.
• prudent programmer (5): The standard navigational charts used in the United
States all carry the warning: “The prudent mariner will not rely solely on any
single aid to navigation, particularly on floating aids.” This carries the force of
law, in that a mariner who causes an accident by acting imprudently can be held
liable for the accident. By analogy, the prudent programmer will not rely upon
best-case conditions to hold true but will instead anticipate possible problems
and write code that will be robust under the most hostile of circumstances.