有人能告诉我哪里出错了吗?我正在创建一个堆栈数组。我差不多完成但是当我显示我的堆栈时,顶部还有一个额外的0?为了让我更加困惑,当我调用'Peek'方法时,它会在堆栈顶部显示正确的数字而不是0? (nextfree只是一个设置为0的int,但也许这是我出错的地方?)
public void display()
{
if ( isEmpty() == true )
{
System.out.println("\nArray is Empty!\n");
return;
}
for (int i = nextfree; i >=0; i--)
System.out.println(array[i]);
}
答案 0 :(得分:1)
不要在nextfree
位置开始迭代;我假设这是下一个可用位置,并且它“超出”堆栈的顶部。原始类型数组中未使用的位置初始化为0
,因此可以解释打印的额外0
。
开始在nextfree - 1
迭代。
for (int i = nextfree - 1; i >=0 ; i--)
答案 1 :(得分:0)
nextFree
指向我假设的下一个免费位置,因此0
来自可用空间。