3

我想知道从 if 语句pop()中的数据结构调用该方法Stack是否会从堆栈中弹出第一个元素?

这是一个代码示例:

public void pop() {
    if(stack.pop() == min) min=stack.pop();
}

这行得通吗?还是像这样声明它更好:

public void pop() {
    int poppedOff = stack.pop();
    if(poppedOff == min) min=stack.pop();
}

我假设这些都在做同样的事情,但我不完全确定。

4

1 回答 1

2

是的。它将,每次调用pop都会从堆栈中弹出一个元素。调用时使用peek()或保存该值pop()(如第二个示例)。此外,min当它等于该值时设置该值是没有意义的。

于 2017-11-23T00:02:45.720 回答