您的堆栈应该由一系列对象支持,这些对象应该在它变满的情况下调整大小
我理解数组和事物的大小调整,但是当我说我的堆栈应该由数组支持时,我不太清楚它是什么意思?
我实现了如下所示的界面,我也被要求执行上述操作,
public interface IStack {
public Object pop() throws StackEmptyException;
public void push(Object o);
public boolean isEmpty();
public int size();
public void clear();
}
答案 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中调整大小,因此您必须自己实现此功能,例如:创建新的更大的数组,并在较小的数组已满时将旧数组中的所有元素复制到新数组。