public Stack() {
items = new E[INITSIZE];
numItems = 0;
}
public E 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) |
|
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) |
public void push(E ob) {
items = new Listnode<E>(ob, items);
numItems++;
}
|
OPERATION |
WORST-CASE TIME |
|
constructor |
O(1) |
|
empty |
O(1) |
|
size |
O(1) |
|
push |
O(1) |
|
pop |
O(1) |
|
peek |
O(1) |
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());
}