AYUDA A RESOLVER ESTE PROBLEMA AMIGOS

Crear un programa para convertir una expresión interfija a posfija. El programa solo puede ser valido para los números de un solo digito y para las 5 operaciones adición, sustracción, multiplicación, división y exponenciación

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Estaría muy interesante usar

Estaría muy interesante usar TDD para esto.

assert  infixToPosfix( "( 1 + 2) * 3").equals("( * ( + 1 2 ) 3 ");

Carlos, seguramente tendras algo ya hecho que no te funcione del todo. En que necesitas ayuda? ¿Que es lo que ya sabes? ¿Que has intentado?

¿En que necesitas ayuda?

Imagen de bferro

Infijo a postfijo

Para animarte a que escribas el programa, te describo los pasos del algoritmo.

  1. Creas un stack (una pila) que puedes hacer con un java.util.Deque<String>
  2. Creas un scanner para hacer un parsing de la expresión aritmética infija, que puedes hacer con la clase java.util.Scanner
  3. En un lazo while recorres toda la línea de entrada. Si el token que devuelve es un integer, lo anexas a la cadena de caracteres que vas a usar para expresar el resultado en notación postfija
  4. Si el token que devuelve es un operador aritmético lo almacenas en la pila con una operación de push
  5. Si el token que devuelve es el caracter ')' haces un pop del elemento en la pila y lo anexas a la cadena de salida
  6. Una vez que ha concluido el parsing de la expresión de entrada, haces pops de los elementos restantes en la pila y los anexas uno a uno a la cadena de salida que estás usando para expresar en resultado en notación postfija
Imagen de bferro

@OscarRyz postfijo?

Lo que tienes como argumento es una expresión prefix.

ah si es cierto :P assert

ah si es cierto :P

assert infixToPostfix( "1 + 2").equals("1 2 +");

Gracias

Pilas en java

Hola amigos soy nuevo en este foro, un amigo me lo recomendo, necesito ayuda. Estoy en el tema de Pilas deseo q me ayuden con el codigo en java que convierta una expresion de formato infijo a postfijo. es decir ejemplo: que se ingrese: (a + j - h) / (s - u) y devuelva : aj+h-su-/ Agradecere bastante x esta ayuda es un trabajo q tengo q presentar. Gracias por su atención