有人可以告诉我我要去哪里了吗?我正在创建一个堆栈数组。我快完成了,但是当我显示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--)

10-08 14:28