Answers to Self-Study Questions

Test Yourself #1

public Stack() {
  items = new E[INITSIZE];
  numItems = 0;
}

Test Yourself #2

public E 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)

empty

O(1)

O(1)

size

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(E ob) {
  items = new Listnode<E>(ob, items);
  numItems++;
}

Test Yourself #5

OPERATION

WORST-CASE TIME

constructor

O(1)

empty

O(1)

size

O(1)

push

O(1)

pop

O(1)

peek

O(1)

Test Yourself #6

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