Expresiones Polacas
Estructura de Datos
Nicolás Martínez Santiago
Jovanni Ramón Lucas González
Planteamiento del problema
Elabore un programa en Java con entorno gráfico
paraleer una expresión aritmética en infijo (Expresión :
4+7), la convierta a una expresión posfija (Expresió n: 4
7 +) y finalmente la evalúe.
Para ello, utilizar las estructuras de datos PILAS yCOLAS, estudiadas en clases.
Además, su programa debe p rimero verificar que su
expresión está bien balanceada para continuar con la
conversión y posteriormente la evaluación.
Diagrama de Clase deUML
(Modelo de solución)
Código
Stack
public class Stack {
private char []stack;
private int i;
private int tam;
public Stack(int tam){
this.tam=tam;
this.stack =new char[tam];this.i=-1;
}
public void push(char dato){
this.stack[++i]=dato;
}
public char pop(){
char x=stack[i--];
return x;
}
public boolean isFull(){
return (i==tam-1);
}
public boolean isVacio(){
return(i==-1);
}
public void vaciar(){
this.tam=tam;
this.stack =new char[tam];
this.i=-1;
}
}
Queue
public class Queue {
private char data[];
private int front;
private int rear;
private intn;
public Queue(int n){
this.n=n;
this.data=new char[n];
this.front=0;
this.rear=0;
}
public void enQueue(char data){
this.data[this.rear]=data;
this.rear=(this.rear+1)%n;
}
public chardeQueue(){
char x=this.data[this.front];
this.data[this.front]=0;
this.front=(this.front+1)%n;
return x;
}
public int size(){
return (this.data.length-this.front+this.rear)%n;
}
public booleanisFull(){
return (this.size()==n-1);
}
public boolean isEmpty(){
return (this.front==this.rear);
}
}
Ecuacion
public class Ecuacion {
private String Ecua;
private Stack match;
privateQueue Num;
public Ecuacion(String Ecua){
this.Ecua = Ecua;
this.match = new Stack(this.Ecua.length()+10);
this.Num= new Queue(this.Ecua.length()+10);
}
public boolean Validar(){
char car;...
Regístrate para leer el documento completo.