Figure 11: Implements an iterator for FixedStack
class StackIter implements Iterator { FixedStack s; private int pos = 0; StackIter(FixedStack s) { this.s = s; } public boolean hasNext() { return pos < s.size(); } public Object next() { return hasNext() ? s.data[pos++] : null; } } class FixedStack implements Stack { private int capacity; private int size; Object[] data; public Iterator iterator() { return new StackIter(this); } // Other methods unchanged ... }