(^524) | Array-Based Lists
(^1) At the implementation level, a relationship also exists between the elements, but the physical rela-
tionship may not be the same as the logical one.
11.1 Lists
From a logical point of view, a list is a homogeneous collection of elements, with a linear re-
lationshipbetween elements. Here linearmeans that, at the logical level, every element in
the list except the first one has a unique predecessor, and every element except
the last one has a unique successor.^1 The number of items in the list, which we call
the length of the list, is a property of a list. That is, every list has a length.
Lists can be unsorted—their elements may be placed into the list in no partic-
ular order—or they can be sortedin a variety of ways. For instance, a list of num-
bers can be sorted by value, a list of strings can be sorted alphabetically, and a list
of addresses could be sorted by ZIP code. When the elements in a sorted list are
of composite types, one of the members of the structure, called the keymember,
determines their logical (and often physical) order. For example, a list of students
on a class roll can be sorted alphabetically by name or numerically by student
identification number. In the first case, the name is the key; in the second case,
the identification number is the key. (See Figure 11.1.)
If a list cannot contain items with duplicate keys, we say that it has unique keys.
(See Figure 11.2.) This chapter deals with both unsorted lists and lists of elements
with unique keys, sorted from smallest to largest key value. The items on the list
can be of any type, atomic or composite. In the following discussion, “item,” “ele-
ment,” and “component” are synonyms; they refer to what is stored in the list.
001 Ziggle
204 Jones
317 Applebee
801 Worton
901 Gomez
Sorted by ID#
317 Applebee
901 Gomez
204 Jones
801 Worton
001 Ziggle
Sorted by name
roll roll
Figure 11.1 List Sorted by Two Different Keys
Linear relationship Every ele-
ment except the first has a
unique predecessor, and every
element except the last has a
unique successor
Length The number of items
in a list; it can vary over time
Unsorted list A list in which
data items are placed in no par-
ticular order with respect to
their content; the only relation-
ships between data elements
consist of the list predecessor
and successor relationships
Sorted list A list whose prede-
cessor and successor
relationships are determined by
the content of the keys of the
items in the list; a semantic rela-
tionship exists among the keys
of the items in the list
Key A member of a class
whose value is used to
determine the logical and/or
physical order of the items in a
list