Você está na página 1de 1

package Posfixa;

import java.util.Scanner;
import java.util.Stack;/*O Stack classe representa um (LIFO) pilha ltimo a entrar
, primeiro a sair de objetos.
Estende-se classe Vetor com cinco operaes que permitem que um vetor para ser trata
do como uma pilha. */
public class PostfixParaInfix {
private boolean Operador(char c) {
if (c == '+' || c == '-' || c == '*' || c == '/' || c == '^')
return true;
return false;
}
/**
* Converte qualquer postfixa para infixa
*/
public String converte(String postfixa) {
Stack<String> s = new Stack<>(); /*cria uma pilha de Strings*/
for (int i = 0; i < postfixa.length(); i++) {
char c = postfixa.charAt(i);
if (Operador(c)) {
String b = s.pop(); /*Remove o objeto no topo de
ssa pilha e retorna esse objeto como o valor desta funo.*/
String a = s.pop();
s.push(""+ a + c + b +"");/*Empurra um item para
o topo da pilha:*/
} else
s.push("" + c);
}
return s.pop();
}
public static void main(String[] args) {
PostfixParaInfix obj = new PostfixParaInfix();
Scanner sc = new Scanner(System.in);
System.out.print("Entre com uma expressao Postfixa : ");
String postfix = sc.next();
System.out.println("Expressao Infixa : " + obj.converte(postfix)
);
}
}