public ArrayStack() { items = new Object[INITSIZE]; numItems = 0; }
public Object pop() throws EmptyStackException { if (numItems == 0) throw new EmptyStackException(); else { numItems--; return items[numItems]; } }
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) |
public void push(Object ob) { items = new Listnode(ob, items); numItems++; }
OPERATION | WORST-CASE TIME |
---|---|
constructor |
O(1) |
isEmpty |
O(1) |
push |
O(1) |
pop |
O(1) |
peek |
O(1) |
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()); }