Answers to Self-Study Questions

Test Yourself #1

public ArrayStack() {
    items = new Object[INITSIZE];
    numItems = 0;
}

Test Yourself #2

public Object pop() throws EmptyStackException {
    if (numItems == 0) 
        throw new EmptyStackException();
    else {
        numItems--;
        return items[numItems];
    }
}

Test Yourself #3

OPERATION WORST-CASE TIME AVERAGE-CASE TIME
constructor

O(1)

O(1)

isEmpty

O(1)

O(1)

push

O(N)

O(1)

pop

O(1)

O(1)

peek

O(1)

O(1)

Test Yourself #4

public void push(Object ob) {
    items = new Listnode(ob, items);
    numItems++;
}

Test Yourself #5

OPERATION WORST-CASE TIME
constructor

O(1)

isEmpty

O(1)

push

O(1)

pop

O(1)

peek

O(1)

Test Yourself #6

public static void reverseQ(QueueADT q) {
// precondition: q contains x1 x2 ... xN (with x1 at the front)
// postcondition: q contains xN ... x2 X1 (with xN at the front)
    StackADT s = new ArrayStack();
    while (!q.empty()) 
        s.push(q.dequeue());
    while (!s.empty()) 
        q.enqueue(s.pop());
}