estructura de datos programa postfijo
//Carmona Montaño David
Definición del problema: se realizará un programa, para capturar expresiones
algebraicas y las imprima en forma posfijo.
Análisis: El programa fuerealizado en el leguaje de programación java, mediante
el editor JCreator, debido a que es el lenguaje y aplicación que se dominan.
Diseño y sistema: El programa solicitara al usuario una expresiónalgebraica y
mediante el uso de pilas, se pasara a forma posfijo usando las funciones de la
clase stack y scanner, como push, pop, peek entr otros con el fin de hacer el
recorrido de la expresióncompleto para poder imprimirlo.
Pantallas del programa:
Primera pantalla: solicita la expresión algebraica.
Segunda pantalla: una vez realizado el recorrido, muestra en pantalla la nuevaexpresión.
Código fuente:
package infixpostfix4;
import java.util.Scanner;
import java.util.Stack;
public class InfixPostfix4 {
public static void main(String[] args) {System.out.println("*Escribe una expresión algebraica: ");
Scanner leer = new Scanner(System.in);
String expr = depurar(leer.nextLine());
String[] arrayInfix = expr.split(" ");
Stack < String > E = new Stack < String >(); //Pila entrada
Stack < String > P = new Stack < String > (); //Pila temporal para operadores
Stack < String > S = new Stack < String > (); //Pila salida
for (int i = arrayInfix.length - 1; i >=0; i--) {
E.push(arrayInfix[i]);
}
try {
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());
}
}
String infix = expr.replace(" ","");
String postfix = S.toString().replaceAll("[\\]\\[,]", "");
System.out.println("Expresion Infija: " + infix);
System.out.println("Expresion Postfija: " + postfix);
}catch(Exception ex){...
Regístrate para leer el documento completo.