22C:21: Computer Science II: Data Structures

## Quiz 1: September 3, 2004

1. Consider the following piece of code.
```		Vector x(5);
```

Draw a picture of the Vector x after the above piece of code is executed showing the contents of the Vector clearly. Also, write down the capacity and the size of the Vector.

Answer: The Vector is

```	4  5  3  3  2  10  NULL  NULL  NULL  NULL
```
The capacity is 10 and the size is 6.

2. Assuming that capacityIncrement is set to 0, is it possible for the capacity of a Vector to be larger than 2 times its size after the first time the Vector becomes full? (Yes or No). Justify your answer in one sentence.

Answer: Yes. There are at two ways in which this can happen. Either of these would be considered correct.

• After the Vector becomes full and its capacity is doubled, we then perform a series of remove operations. The capacity stays the same, but the size falls and as a result the capacity is larger than twice the size.
• We call the function ensureCapacity directly with an argument that is larger than twice the current size. After the function call, the new capacity of the Vector equals the argument that was passed into the function while the size stays the same.