我新的Java和我试图写一个阵列堆栈 现在我想避免弹出()函数游荡,如何删除一个指针数组中的元素的java
public class Stack {
private int[] s;
private int N=0;
public Stack(int capacity)
{
s= new int [capacity];
}
public boolean IsEmpty()
{
return N==0;
}
public void push (int x)
{
s[N++]=x;
}
public int pop()
{
int x=s[--N];
s[N]=null;
return x;
}
时它递减该值,仍有指针 到已现脱下堆栈中的元素我试图设置已删除项目为空 但是编译器给了我异常
我能以删除办被删除项目的指针?!
哪个指针?你在这里使用原语('int'),而不是使用对象 – SJuan76 2013-02-20 18:40:23
你应该只保留代表栈顶的数组索引。我认为你正在用'N'做什么。 – 2013-02-20 18:41:19
您不能将基元(如int)设置为null。只有'Object'的后代可以是'null'。只需在'pop()'中减少计数器('N')就可以了,并且一定要在'push()'中正确设置最后一个堆栈元素。 – iamnotmaynard 2013-02-20 18:48:09