Java Stack显示方法,在Stack顶部显示'0'?

时间:2013-12-02 21:43:34

标签: java

有人能告诉我哪里出错了吗?我正在创建一个堆栈数组。我差不多完成但是当我显示我的堆栈时,顶部还有一个额外的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]); 
}  

2 个答案:

答案 0 :(得分:1)

不要在nextfree位置开始迭代;我假设这是下一个可用位置,并且它“超出”堆栈的顶部。原始类型数组中未使用的位置初始化为0,因此可以解释打印的额外0

开始在nextfree - 1迭代。

for (int i = nextfree - 1; i >=0 ; i--) 

答案 1 :(得分:0)

nextFree指向我假设的下一个免费位置,因此0来自可用空间。