Java堆栈显示方法,是否在堆栈顶部显示“0”?
有人能告诉我哪里出了问题吗?我正在创建一个堆栈数组。我几乎完成了,但是当我显示堆栈时,在顶部有一个额外的0?更让我困惑的是,当我调用'Peek'方法时,它会在堆栈顶部显示正确的数字,而不是0??(nextfree只是一个设置为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]);
}
# 1 楼答案
不要从
nextfree
位置开始迭代;我假设这是下一个可用的位置,它“超出”堆栈顶部。原语类型的数组中未使用的位置被初始化为0
,这就解释了额外打印的0
从^{开始迭代
# 2 楼答案
nextFree
指向下一个空闲位置,所以0
来自空闲空间