What are the access and retrieval patterns? Is the data
stored once and
retrieved a large number of times, as in an address book? Or is the data stored
on an ongoing basis and then retrieved only occasionally? Is there a need to make
retrieval of some (more popular) records more efficient than the retrieval of other
records? Is it the case that there are usually only a few updates to be made, as
with a university transcript database, but then there are times (such as the end
of the semester) when bulk updates occur?
, for example, will want to index everything, but part of the success
of Google has been its ability to quickly point to what the user community has
determined to be “relevant” data. The use of last name as the primary key in a
personal address book is due to the fact that this is (for most people, at least) the
normal way in which the data would be identified and searched for. Retrieval by zip
code for bulk mailing purposes can be useful, but it is not going to be the common
method for retrieval of names and addresses.
Similarly, in an operating system, the available processes to execute can probably
be sorted by priority, but with only one or perhaps two CPUs, there will be a high
priority placed on being able to identify very quickly “the next” process in the data
structure to execute since any time spent on deciding which process to execute will
not be viewed as productive work for the user. A similar situation will exist if the
data object that is being built is a game tree of potential moves. We will want to
build as large a tree as possible of our potential moves, the opponent’s potential
responses, our responses to the responses, and so forth, together with a measure of
our game status after each move and countermove.
1.1.7 Memory and Bandwidth
Increasingly, software is focusing on mobile devices. Because these devices are
mobile, and usually mass-marketed, they have limited resources in processor power
and in memory or longer-term storage. As mobile devices, they gain their utility
largely by being connected wirelessly, which means that the bandwidth from the
device to the rest of the universe is limited. Anyone who has downloaded large files
or accessed the Internet from a slow telephone line knows that some things just don’t
work well due to a mismatch of the program and the bandwidth of the machine. This
is most apparent with images and video. It is virtually impossible to access mere text
in sufficient quantity to make bandwidth an issue, but it is relatively easy to do this
The author generally tries to be strict in his grammar, and he is aware that “data” is officially
the plural of “datum,” is therefore plural, and should take the plural verb “are” and not the
singular verb “is.” However, even though the author generally tries to be strict about correct
grammar, this is one instance in which the common singular usage, treating data as a mass noun,
especially with regard to computer data, seems appropriate.

Get Data Structures Using Java now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.