Я реализую алгоритм minstack и что-то странное. Может быть, мне здесь не хватает «какой-то концепции стека» или «некоторой концепции Java». Я использую два стека (st и st2) для выполнения операций minstack. Ниже мой метод pop, который терпит неудачу при условии if:
Метод 1 - СБОЙ:
public void pop() {
if(st.pop() == st2.peek())
st2.pop();
}
Ниже приведен метод Pop, который отлично работает, когда я сохраняю st.pop (), в результате получается переменная 'a':
Метод 2 - ПРОХОДЫ:
public void pop() {
int a = st.pop();
if(a == st2.peek())
st2.pop();
}
Пожалуйста, предположим, что в стеке есть целочисленные элементы, и значение из st.pop()
равно st2.peek()
. Я хотел бы понять разницу в том, почему st.pop()
не будет работать, если состояние метода 1 и работает в методе 2 после сохранения результатов st.pop()
во временной переменной a