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
.
.
.