这句话在Java方面意味着什么?

时间:2014-11-27 19:41:24

标签: java arrays stack

  

您的堆栈应该由一系列对象支持,这些对象应该在它变满的情况下调整大小

我理解数组和事物的大小调整,但是当我说我的堆栈应该由数组支持时,我不太清楚它是什么意思?

我实现了如下所示的界面,我也被要求执行上述操作,

public interface IStack {
    public Object pop() throws StackEmptyException;
    public void push(Object o);
    public boolean isEmpty();
    public int size();
    public void clear();
}

4 个答案:

答案 0 :(得分:4)

你创建一个表示堆栈的类,即一个支持堆栈操作,推送和弹出的列表,这就是你的“堆栈”的用户所看到的,但实际上你是通过使用数组来存储它来编程的。元素。如果/当初始数组已满时,将内容复制到一个新的更大的数组中,堆栈的用户不是更明智的。

答案 1 :(得分:1)

这意味着您的堆栈实现应使用数组来存储数据。这是一个原始整数类型堆栈的示例:

public class Stack {
    int[] data;
    int size;

    public boolean push(int element) {
        if (size == data.length) {
            resize();
        }
        data[size++] = element;
    }

    private void resize() {
        //logic to increment/decrease the size of the array
    }
}

在作业中没有说明,但我认为你的堆栈应该存储任何类型的对象。您应该对上述方法进行一些修改以支持此类要求(未完成,因为这意味着要解决您的作业)。

答案 2 :(得分:1)

如果要实现堆栈,则需要一些地方来存储数据。由于你还没有堆叠,你需要采取其他措施来“回”堆栈。在这种情况下是一个数组。

答案 3 :(得分:0)

我相信这是你的家庭作业的一部分,他们希望你实现支持常规堆栈操作的堆栈,如push和pop。此堆栈应将元素保存在作为数组的私有成员中。

由于数组无法在java中调整大小,因此您必须自己实现此功能,例如:创建新的更大的数组,并在较小的数组已满时将旧数组中的所有元素复制到新数组。