我必須使用索引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