public class ConversorPosfixaParaInfixa { public static void main(String[] args) { System.out.println(posfixaToInfixa("ABC*+")); System.out.println(posfixaToInfixa("ABC+*D/E-")); System.out.println(posfixaToInfixa("ABCDEF-*-GH*-*+I3*-")); System.out.println(posfixaToInfixa("ABC*D/E*+F-")); System.out.println(posfixaToInfixa("AB+CD*+EF*G*-")); System.out.println(posfixaToInfixa("ABCDEF+-+-+")); System.out.println(posfixaToInfixa("ABCDEFG+*+*+*")); } static String posfixaToInfixa(String posfixa) { Stack stack = new LinkedListStack(); for (int i = 0; i < posfixa.length(); i++) { char a = posfixa.charAt(i); if (ehOperando(a)) { stack.push(a + ""); } else { String y = stack.pop(); String x = stack.pop(); stack.push("(" + x + a + y + ")"); } } return stack.top(); } static boolean ehOperando(char a) { return a != '+' && a != '-' && a != '*' && a != '/'; } }