jtentor icon

Ejercicio 8 - Trabajo práctico 2 - 2017

jtentor | PRO | 08/18/20 02:21:56 PM UTC (Edited) | 0 ⭐ | 548 👁️ | Never ⏰ | []
Java |

1.3 KB

|

None

|

0 👍

/

0 👎

import java.util.Stack;
import java.util.Scanner;
 
public class TP2E08 {
 
    public static void main(String[] args) {
        TP2E08 exercise = new TP2E08();
        exercise.execute();
    }
 
    private void execute() {
        Scanner console = new Scanner(System.in);
        System.out.print("Ingrese una expresión interfija: ");
        String interFixExpression = console.nextLine();
        System.out.println("Expresión posfija: " + toPostFix(interFixExpression));
        console.close();
    }
    
    private String toPostFix(String interFixExpression) {
        String postFixExpression = "";
        
        Stack<Character> operators = new Stack<Character>();
        
        Character c;
        for (int i = 0; i < interFixExpression.length(); ++i) {
 
            c = interFixExpression.charAt(i);
            if ((c >= '0') && (c <= '9')) {
                postFixExpression += c;
            } else {
                while ((operators.size() > 0) && (precedence(operators.peek()) >= precedence(c))) {
                    postFixExpression += operators.pop();
                }
                operators.push(c);
            }
        }
 
        while (operators.size() > 0) {
            postFixExpression += operators.pop();
        }
 
        return postFixExpression;
    }
 
    private int precedence(Character operator) {
        switch(operator) {
        case '+' :
            return 1;
        case '-' :
            return 1;
        case '*' :
            return 2;
        case '/' :
            return 2;
        default :
            return 3;
        }
    }
}

Comments