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