notaciÓn postfija e infija - java
DESCRIPTION
Aqui esta el codigo en java de la notación post fija e infija.TRANSCRIPT
![Page 1: NOTACIÓN POSTFIJA E INFIJA - JAVA](https://reader036.vdocuments.net/reader036/viewer/2022082810/557dfc03d8b42a07708b49ea/html5/thumbnails/1.jpg)
FACULTAD DE INGENIERÍAESCUELA DE SISTEMAS
NOTACIÓN POSTFIJA E INFIJANOMBRE: Contreras Ulloa, Shirley Asunción.CICLO: III-ADOCENTE: Ing. Oscar Alcántara MorenoCURSO: Estructura de Datos
![Page 2: NOTACIÓN POSTFIJA E INFIJA - JAVA](https://reader036.vdocuments.net/reader036/viewer/2022082810/557dfc03d8b42a07708b49ea/html5/thumbnails/2.jpg)
NOTACIÓN POSTFIJA E INFIJAclass nodo{
private char caracter;private nodo enlace;private nodo(char x){
caracter=x;enlace=null;
}//constructorpublic nodo(char x, nodo enlc){
caracter=x;enlace=enlc;
}public void asigna_enlace(nodo enlc){
enlace=enlc;}public void asigna_caracter(char x){
caracter=x;}public char retorna_caracter(){
return caracter;}public nodo retorna_enlace(){
return enlace;}public void mostrar_nodo(){
System.out.println(caracter+" ");//System.out.println("El enlace es: "+enlace);
}}
class cola{
private nodo primero;//constructorpublic cola(){
primero=null;}public boolean vacia(){
if(primero==null)return true;
2
![Page 3: NOTACIÓN POSTFIJA E INFIJA - JAVA](https://reader036.vdocuments.net/reader036/viewer/2022082810/557dfc03d8b42a07708b49ea/html5/thumbnails/3.jpg)
elsereturn false;
}public void insertar_cola(char x)//este tipo de insertar es el mismo {
nodo nuevo =new nodo(x, null); //que el de una lista enlazada insertar al finalif(primero==null)
primero=nuevo; else {
nodo ultimo=primero;while(ultimo.retorna_enlace()!=null){ ultimo=ultimo.retorna_enlace();}ultimo.asigna_enlace(nuevo);
}}public void eliminar_primero(){
if(primero!=null)primero=primero.retorna_enlace();
}public char retorna_primero(){
return primero.retorna_caracter();}public void mostrar_cola(){
nodo aqui=primero;System.out.println("La cola es: ");while(aqui!=null){
aqui.mostrar_nodo();aqui=aqui.retorna_enlace();
}System.out.println("Se mostro la cola");
}}
class pila{
private nodo cima;//constructorpublic pila(){
cima=null;}public boolean vacia(){
if(cima==null)return true;
3
![Page 4: NOTACIÓN POSTFIJA E INFIJA - JAVA](https://reader036.vdocuments.net/reader036/viewer/2022082810/557dfc03d8b42a07708b49ea/html5/thumbnails/4.jpg)
elsereturn false;
}public void insertar_cima(char x)//este tipo de insertar es el mismo {
nodo nuevo=new nodo(x, cima);cima=nuevo;
}public char retorna_cima() {
return cima.retorna_caracter();}public void eliminar_cima(){
if(cima!=null){
cima=cima.retorna_enlace();}
}public void mostrar_pila(){
nodo aqui=cima;System.out.println("Los nodos de la pila");while(aqui!=null){
aqui.mostrar_nodo();aqui=aqui.retorna_enlace();
}System.out.println("Se mostraron todos los nodos de la pila");
}}
class nodo2{
private double caracter;private nodo2 enlace;private nodo2(double x){
caracter=x;enlace=null;
}//constructorpublic nodo2(double x, nodo2 enlc){
caracter=x;enlace=enlc;
}public void asigna_enlace(nodo2 enlc){
enlace=enlc;}public void asigna_caracter(double x)
4
![Page 5: NOTACIÓN POSTFIJA E INFIJA - JAVA](https://reader036.vdocuments.net/reader036/viewer/2022082810/557dfc03d8b42a07708b49ea/html5/thumbnails/5.jpg)
{caracter=x;
}public double retorna_caracter(){
return caracter;}public nodo2 retorna_enlace(){
return enlace;}public void mostrar_nodo(){
System.out.println(caracter+" ");//System.out.println("El enlace es: "+enlace);
}}
class pila2{
private nodo2 cima;//constructorpublic pila2(){
cima=null;}public boolean vacia(){
if(cima==null)return true;
elsereturn false;
}public void insertar_cima(double x)//este tipo de insertar es el mismo {
nodo2 nuevo=new nodo2(x, cima);cima=nuevo;
}public double retorna_cima() {
return cima.retorna_caracter();}public void eliminar_cima(){
if(cima!=null){
cima=cima.retorna_enlace();}
}public void mostrar_pila(){
nodo2 aqui=cima;
5
![Page 6: NOTACIÓN POSTFIJA E INFIJA - JAVA](https://reader036.vdocuments.net/reader036/viewer/2022082810/557dfc03d8b42a07708b49ea/html5/thumbnails/6.jpg)
System.out.println("Los nodos de la pila");while(aqui!=null){
aqui.mostrar_nodo();aqui=aqui.retorna_enlace();
}System.out.println("Se mostraron todos los nodos de la pila");
}}
import java.io.*;class aplicacion{
public static void main (String [] args){
BufferedReader entra =new BufferedReader(new InputStreamReader(System.in));
pila pilita = new pila();cola colita = new cola();char caracter='\0';int pp=0, pe=0;String exp_infija="";try{
System.out.println("La expresión Infija es: ");exp_infija=entra.readLine();for(int i=0; i<exp_infija.length(); i++){
caracter=exp_infija.charAt(i);switch(caracter){
case '+': case '-': case '*': case '/': case '^':
if(pilita.vacia()){
pilita.insertar_cima(caracter);}else{
pe=prioridad(caracter);pp=prioridad(pilita.retorna_cima());if(pe>pp)
pilita.insertar_cima(caracter);else{while(!pilita.vacia() &&(pe<=pp)){
colita.insertar_cola(pilita.retorna_cima());
6
![Page 7: NOTACIÓN POSTFIJA E INFIJA - JAVA](https://reader036.vdocuments.net/reader036/viewer/2022082810/557dfc03d8b42a07708b49ea/html5/thumbnails/7.jpg)
pilita.eliminar_cima(); if(!pilita.vacia()) {
pp=prioridad(pilita.retorna_cima()); }}pilita.insertar_cima(caracter);}
}break;
case '(':pilita.insertar_cima(caracter);break;
case ')':while(pilita.retorna_cima()!='('){
colita.insertar_cola(pilita.retorna_cima());pilita.eliminar_cima();
}pilita.eliminar_cima();break;
default:colita.insertar_cola(caracter);
}}while(!pilita.vacia()){ colita.insertar_cola(pilita.retorna_cima()); pilita.eliminar_cima();}System.out.println("La Expresion postfija es: ");colita.mostrar_cola();
//Inicia la operaciones para encontrar el resultadodouble opn1,opn2,r,num_ca,res;// donde r es resultado preliminar,
num_ca es el numero que da del codigo asqui pila2 p = new pila2(); while(!colita.vacia())
{ caracter=colita.retorna_primero();
colita.eliminar_primero(); switch(caracter) {
case '+': case '-': case '*': case '/': case '^': opn2=p.retorna_cima(); p.eliminar_cima();
7
![Page 8: NOTACIÓN POSTFIJA E INFIJA - JAVA](https://reader036.vdocuments.net/reader036/viewer/2022082810/557dfc03d8b42a07708b49ea/html5/thumbnails/8.jpg)
opn1=p.retorna_cima(); p.eliminar_cima(); r=opciones(opn1,opn2,caracter);
p.insertar_cima(r); break; default: num_ca=caracter-48; p.insertar_cima(num_ca);
} } res=p.retorna_cima(); System.out.println("El resultado es : "+res);}catch(Exception err){
System.out.println("Error en el ingreso de datos"+err);}
}public static int prioridad(char operador){
int v=0;switch(operador){
case '(': v = 0; break;case '+': v = 1;
break;case '-': v = 1;
break;case '*': v = 2;
break;case '/': v = 2;
break;case '^': v = 3;
break;}return v;
}
public static double opciones(double opn1,double opn2,char operador){
double valor=0; switch(operador) {
case '^' : valor = Math.pow(opn1,opn2);break;case '*' : valor = opn1*opn2;break;case '/' : valor = opn1/opn2;break;case '+' : valor = opn1+opn2;break;case '-' : valor = opn1-opn2;break;
} return valor;
}
8
![Page 9: NOTACIÓN POSTFIJA E INFIJA - JAVA](https://reader036.vdocuments.net/reader036/viewer/2022082810/557dfc03d8b42a07708b49ea/html5/thumbnails/9.jpg)
}
9