Question
Solution Preview
This material may consist of step-by-step explanations on how to solve a problem or examples of proper writing, including the use of citations, references, bibliographies, and formatting. This material is made available for the sole purpose of studying and learning - misuse is strictly forbidden.
import java.util.Iterator;class CallStackIterator<T> implements Iterator<T>
{
Object[] arr;
int pos = 0;
public CallStackIterator(CallStack<T> cs)
{
arr = cs.toArray();
}
@Override
public boolean hasNext() {
return pos < arr.length;
}
@SuppressWarnings("unchecked")
@Override
public T next() {
// TODO Auto-generated method stub
if (!hasNext())
throw new NullPointerException();
return (T)arr[pos++];
}
}
class CallStack<T> implements Iterable<T> {
// You'll want some instance variables here
Node<T> data = null;
int nItems = 0;
public CallStack() {
//setup what you need
}
public void push(T item) {
//push an item onto the stack
//you may assume the item is not null
//O(1)
if (data == null)
data = new Node<T>(item);
else
{
Node<T> newNode = new Node<T>(item);
newNode.setNext(data);
data.setPrev(newNode);
data = newNode;
}
nItems++;
}
public T pop...