Chapter 3. Lists: Linear Collections
In our last chapter, we introduced the array data structure upon which many of the structures we will examine in this text are based. Although arrays provide good performance for static collections of data, our coding examples proved that they are inflexible and inefficient for many applications--so much so that even something as simple as adding or deleting an element from a collection is an extremely complex and costly operation.
Lists are, in some ways, an evolution of the array. A list can be defined as a finite, ordered series of objects or values called elements. An empty list is a list with no elements, while the length of a list is the total number of elements in the collection. The first item in a list is called the head, while the last item is called the tail. In a list with a length of 1, the head and tail are the same object.
Note
While arrays are a concrete data structure, a list is an abstract concept of a data structure that...