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());
}