Witam
W moim kodzie nie wiem dlaczego drukuje się co 2 znak, jeśli jest on o tym samym priorytecie. Bardzo proszę o pomoc w znalezieniu błędu. KOD: http://pastebin.com/Syc2LPv3
Pozdrawiam
Witam
W moim kodzie nie wiem dlaczego drukuje się co 2 znak, jeśli jest on o tym samym priorytecie. Bardzo proszę o pomoc w znalezieniu błędu. KOD: http://pastebin.com/Syc2LPv3
Pozdrawiam
Stosujesz algorytm Dijkstry? Moim zdaniem, metoda processOperator
jest błędna.
public void proccessOperator(char op)
{
char topOp;
if(stos.isEmpty())
{
stos.push(op);
return;
}
while(!stos.isEmpty() && priorytet(stos.peek()) > priorytet(op))
{
topOp = stos.pop();
postFix+=topOp;
}
stos.push(op);
}
Dodałem nawiasy do tego programu i wszystko ładnie się konwertuje. Wynik jest z nawiasami jest dobry, tylko że w stosie zostają nawiasy i na końcu się drukują. W programie na końcu są testy i widać o co mi chodzi dokładnie. Gdzie zrobiłem błąd ?
Gdzie zrobiłem błąd ?
W kodzie.
Przy poprawnej implementacji algorytmu Dijkstry, na stosie nie ma nawiasów.