我必须使用索引0作为我的堆栈的TOP,并且在执行此操作时遇到问题。我得到所有null
s,但输出100,200和300是我所得到的唯一数字。我忽略的实现有什么问题吗?推送方法应该实现ArrayListStack,在索引0推压元件,以及应该能够仅除去所述顶部元件(索引0)Array LinkedList Stacks
public class NaughtyArrayStack<E> implements Stack<E>
{
private E[] data = (E[])(new Object[10]);
private int size;
public boolean isEmpty()
{
return (size == 0);
}
public void push(E newData)
{
if (size == data.length)
{
E[] newDataArray = (E[])(new Object[size*2]);
for (int i = 0; i < size; i++)
if(isEmpty())
data[0] = newData;
else
newDataArray[i+1] = data[i];
data = newDataArray;
}
data[0] = newData;
size++;
}
public static void main(String[] args)
{
Stack<Pancake> breakfast = new NaughtyArrayStack<Pancake>();
for (int i = 10; i <= 300; i += 10)
{
breakfast.push(new Pancake(i));
}
}
}
请解释你的'push'方法。 –
什么是数据?分享您的完整代码 –
这个要求就像我见过的最差执行堆栈。所有堆栈添加/删除操作都是O(n)。 – Andreas