[AJUDA]Infixa para pos fixada

2 respostas
R

o meu codigo ele parece estar certo, mas ele nao exibe corretamente como deveria.
no caso : (A+B)*(C+D) era pára ser exibido AB+CD+* mas ele imprime CD+*AB.

meu codigo abaixo:

obs nao funciona com expressao sem parentesis(nao sei se escreve assim)
public void parseInfixa(){
		Pilha numeros = new Pilha();
		Pilha operadores = new Pilha();
		
		while(this.topo != null){
			if(this.topo.str.equals("(")){
				this.pop();
			}
			else if(this.topo.str.equals("+") || this.topo.str.equals("-") 
					|| this.topo.str.equals("/") || this.topo.str.equals("*")
						|| this.topo.str.equals("ln") || this.topo.str.equals("e")){
				operadores.push(this.pop());
			}
			else if(this.topo.str.equals(")")){
				this.pop();
				while(numeros.topo != null){
					operadores.push(numeros.pop());
				}
			}
			else{
				numeros.push(this.pop());
			}
		}
		while(numeros.topo != null){
			operadores.push(numeros.pop());
		}
		operadores.print();
	}

2 Respostas

ViniGodoy

Já tentou usar um depurador?

Outra coisa. Evite essas tags como [AJUDA] ou [DUVIDA] no título do seu tópico.
Por ser uma informação óbvia (praticamente todo mundo que abre um tópico aqui precisa de ajuda), ela não ajuda em nada.

R

desculpa pelo ajuda cara…mas debugar eu nao sei usar direito ainda…inicio do curso

Criado 29 de setembro de 2010
Ultima resposta 29 de set. de 2010
Respostas 2
Participantes 2