Ontem tava fazendo um trabalho pra entregar a um professor achei que já estava pronto mas ao tentar rodar alguns testes passados pelo mesmo não funcionou bem …
é uma classe com dois métodos principais para converter expressoes Infixas para PósFixas e vice versa …
poderiam me ajudar e ver o que acontece de errado ?
este é o método que transforma de infixa para pósfixa :
public void infixaPosfixa()
{
String exame = expressao;
for(int i=0; i<exame.length();i++)
{
if ( exame.charAt(i) =='(')
elementos.empilha("(");
else if ( exame.charAt(i) == '+')
prioridadeSinal("+");
else if ( exame.charAt(i) == '-')
prioridadeSinal("-");
else if ( exame.charAt(i) == '*')
prioridadeSinal("*");
else if ( exame.charAt(i) == '/')
prioridadeSinal("/");
else if ( exame.charAt(i) ==')')
prioridadeSinal(")");
else
saida += exame.charAt(i);
}
while ( ! elementos.vazia ())
saida += elementos.desempilha();
System.out.println(saida);
}// infixaPosfixa
e este posfixa para infixa :
public void posfixaInfixa()
{
String exame = expressao;
String aux="";
Object op1,op2;
for( int i=0;i<exame.length();i++)
{
if (exame.charAt(i) == '+' || exame.charAt(i)=='-' ||
exame.charAt(i) == '*' || exame.charAt(i)=='/')
{
op2 = elementos.desempilha();
op1 = elementos.desempilha();
aux = "("+ op1 + ""+ exame.charAt(i) + op2+")";
elementos.empilha(aux);
}
else
{
elementos.empilha(exame.charAt(i));
}
}
saida = aux;
}// posfixaInfixa
ambos os métodos recebem uma string contendo a expressao ( sem espaços )
Socorro ! preciso entregar isto hoje até a meia noite !
:oops: