Witam, muszę napisać program który przechodzi z ONP -> INF i odwrotnie. Wykorzystuje do tego stos i mam pewien problem. Otóż dla pewnych danych w pewnym momencie wrzucam na stos (String) "d-a", a następnie "f-b" i mam problem, bo gdy sciągam kolejno dwie wartości z stosu to dostaje dwa razy "f-b". Ktoś spotkał się z podobnym problemem?
Częściowy kod programu
class Operator {
private String operator;
private int priority;
public String value;
public boolean isOperator;
.
.
.
if (op==null) { // wrzuc operand na stos
op = new Operator(stSign);
stac.pushOperator(op);
} else { //mamy operator trzeba sie bawic!! zakladam ze wyrazenia sa poprawne
if (op.getOperator().equals("~")) {
Operator opRight = new Operator();
opRight = stac.popOperator();
if (opRight.isOperator) {
if (opRight.getOperator().equals("~") || op.getPriority()>opRight.getPriority()) op.value = op.getOperator() + "(" + opRight.value + ")"; }
else
op.value = op.getOperator() + opRight.value;
} else {
Operator opRight = stac.popOperator();
Operator opLeft = stac.popOperator(); // dla pewnych danych tutaj się sypie
.
.
.