20 pts., Apr. 29
More memory is required to store a list using an array implementation, due to the static nature of an array and the requirement that large lists be capable of being stored. On the other hand, the pointer associated with each item of a pointer-based list represents overhead.
For a pointer-based list, the amount of work is constant --- O(1). For an array-based list, the work is proportional to the length of the list --- O( n). This is because each of the items in the list must be shifted one position in the array.
For a pointer-based list, the amount of work is O( n), because the entire list must be traversed to locate its end. For an array-based list, the amount of work is O(1). The end of the list can easily be determined from the data member holding the number of items in the list and the new item simply appended onto the array with no need for shifting any data.