我无法弄清楚如何删除和打印IntStack对象中的每个项目,直到它为空。我需要使用if语句吗?我知道堆栈的基础知识,例如: 假设s引用了一个IntStack对象。
如果我想将值100添加到s的顶部,我只需使用s.push(100)
如果我想删除并打印s的最高值,我会使用s.pop()
如果我想打印顶部值而不删除它,我会使用s.peek()
一旦我尝试移除并打印s中的每个项目,直到它为空,我遇到了麻烦。
答案 0 :(得分:1)
即使InStack是某个第三方堆栈,根据相关描述,它实现了所有标准堆栈方法,因此以下应该可以工作。
public void print(Stack s)
{
while(!s.isEmpty())
{
System.out.println(s.pop());
}
}
答案 1 :(得分:-1)
当堆栈中没有任何内容时,s.peek()将返回null
,
while(s.peek() != null){
System.out.println(s.pop());
}