Codigo de comversão
Por: yancdc • 5/10/2015 • Trabalho acadêmico • 701 Palavras (3 Páginas) • 211 Visualizações
import java.util.Scanner;
import java.util.Stack;
public class InfixPostfix4 {
public static void main(String[] args) {
//Entrada de datos
System.out.println("*Escreva uma expressão algébrica: ");
Scanner leer = new Scanner(System.in);
//Depurar a expressão algebrica
String expr = depurar(leer.nextLine());
String[] arrayInfix = expr.split(" ");
//Declaração de pilhas
Stack < String > E = new Stack < > (); //Pilha entrada
Stack < String > P = new Stack < > (); //Pilha temporal para operadores
Stack < String > S = new Stack < > (); //Pilha saída
//Analisar array Pilha de entrada (E)
for (int i = arrayInfix.length - 1; i >= 0; i--) {
E.push(arrayInfix[i]);
}
try {
//Algoritmo Infixo para Posfixo
while (!E.isEmpty()) {
switch (pref(E.peek())){
case 1:
P.push(E.pop());
break;
case 3:
case 4:
while(pref(P.peek()) >= pref(E.peek())) {
S.push(P.pop());
}
P.push(E.pop());
break;
case 2:
while(!P.peek().equals("(")) {
S.push(P.pop());
}
P.pop();
E.pop();
break;
default:
S.push(E.pop());
}
}
//Eliminações de impurezas das expreções algebricas
String infix = expr.replace(" ", "");
String postfix = S.toString().replaceAll("[\\]\\[,]", "");
//Mostrar resultados:
System.out.println("Expressão Infixa: " + infix);
...