0

对于作业,我必须创建一个自定义堆栈类来实现 java.util.Stack 的常用功能。通过类扩展,这些堆栈之一基于实际的 java.util.Stack 类。然而,另一个基于创建“可链接”节点,允许您创建一个可以推送或弹出的单链接堆栈(Linkable在这种情况下,是一个由getNext()和组成的接口setNext())。我有基本的代码,基本上如下:

public class LStack {
    Linkable head;

    public pop() { /* Pop element off of stack */ }
    public push() { /* Push element onto stack */ }
    public front() { /* Return tail of stack without removing it */ }
    public makeNull() { /* Clear entire stack */ }
    public empty() { /* Return true or false based on emptiness of stack */ }
}

对于作业的下一部分,我必须Iterator使用iterator()我将在 中实现的方法创建一个实例LStack。在尝试实现迭代器时,我一直在试图弄清楚如何实现Iterator.next()方法覆盖。不幸的是,我的教授强烈反对泛型,所以我不能使用Iterator<E>或类似的东西来为我正在迭代的内容提供上下文。这是我当前的Iterator代码:

class LIterator implements Iterator {
    Object current;
    LStack stack;

    LIterator(LStack stack) {
        current = null;
        this.stack = stack;
    }

    // .... unimplemented next(), hasNext(), remove()  
}

如何从迭代器中检索下一个对象?我曾尝试强制转换为一个Linkable对象以便我可以使用getNext(),但 eclipse 将其标记为与Iterator.next().

4

0 回答 0