Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package tp2;
- import java.util.Scanner;
- import java.util.Stack;
- import java.util.ArrayList;
- public class eje3 {
- public static boolean Operadores(char ch1) {
- boolean aux=false;
- char[] operadores= {'*', '/', '+', '-'};
- for(char simbolo : operadores) {
- if(ch1==simbolo) {
- aux=true;
- }
- }
- return aux;
- }
- public static int prioridadesOperadores(char ch1){
- int aux=0;
- switch(ch1){
- case '*':
- aux=2;
- break;
- case '/':
- aux=2;
- break;
- case '+':
- aux=1;
- break;
- case '-':
- aux=1;
- break;
- }
- return aux;
- }
- public static boolean Operandos(char ch1) {
- boolean aux=false;
- char[] operados= {'1', '2', '3', '4','5','6','7','8','9','0'};
- for(char simbolo : operados) {
- if(ch1==simbolo) {
- aux=true;
- }
- }
- return aux;
- }
- public static void interFijaAPost(String ecuacion,ArrayList<Character> posfija, Stack<Character> interfija) {
- char aux;
- for(int i=0;i<ecuacion.length();i++) {
- aux=ecuacion.charAt(i);
- if(Operandos(aux)) {
- posfija.add(aux);
- }else
- if(Operadores(aux)) {
- if(interfija.isEmpty()) {
- interfija.push(aux);
- }else {
- if(prioridadesOperadores(aux)>prioridadesOperadores(interfija.peek())){
- interfija.push(aux);
- }else {
- if(prioridadesOperadores(aux)<=prioridadesOperadores(interfija.peek())) {
- posfija.add(interfija.pop());
- if(Operadores(aux)) {
- if(interfija.isEmpty()) {
- interfija.push(aux);
- }else {
- if(prioridadesOperadores(aux)>prioridadesOperadores(interfija.peek())){
- interfija.push(aux);
- }else {
- if(prioridadesOperadores(aux)<=prioridadesOperadores(interfija.peek())) {
- posfija.add(interfija.pop());
- interfija.push(aux);
- }
- }
- }
- }
- }
- }
- }
- }
- }
- while(!interfija.empty()) {
- posfija.add(interfija.pop());
- }
- }
- public static String mostrarArreglo(ArrayList<Character> arreglo) {
- String aux="";
- for(Character c:arreglo) {
- aux+=c;
- }
- return aux;
- }
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- ArrayList<Character> posfija= new ArrayList<Character>();
- Stack<Character> interfija= new Stack<Character>();
- Scanner leer = new Scanner(System.in);
- System.out.println("Ingrese expresion matematica en notacion interfija: ");
- String ecuacion=leer.nextLine();
- interFijaAPost(ecuacion,posfija,interfija);
- System.out.println("Expresion Matematica en posfija: "+mostrarArreglo(posfija));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement