有人可以告诉我我要去哪里了吗?我正在创建一个堆栈数组。我快完成了,但是当我显示Stack时,顶部有一个额外的0?更令人困惑的是,当我调用“ Peek”方法时,它在堆栈顶部显示正确的数字,而不是0? (nextfree只是将int设置为0,但也许这是我要出错的地方?)
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]);
}
最佳答案
不要在nextfree
位置开始迭代;我假设这是下一个可用位置,并且“超出”堆栈顶部。原始类型数组中未使用的位置被初始化为0
,从而解释了额外打印的0
。
从nextfree - 1
开始迭代。
for (int i = nextfree - 1; i >=0 ; i--)