我想知道在if语句中从Stack
数据结构调用public void pop() {
if(stack.pop() == min) min=stack.pop();
}
方法是否会从堆栈中弹出第一个元素?
以下是代码示例:
public void pop() {
int poppedOff = stack.pop();
if(poppedOff == min) min=stack.pop();
}
这会有用吗?或者最好这样声明:
{{1}}
我假设这些都是做同样的事情,但我不完全确定。
答案 0 :(得分:2)
是。它会在每次调用pop
时弹出一个元素。使用peek()
或在致电pop()
时保存该值(如第二个示例)。此外,将min
设置为等于该值时的值是没有意义的。