2008UNIVERSIDAD CÉSAR VALLEJOFACULTAD DE INGENIERÍAESCUELA DE SISTEMASNOTACIÓN POSTFIJA E INFIJANOMBRE: Contreras Ulloa, S...
NOTACIÓN POSTFIJA E INFIJA - JAVA
NOTACIÓN POSTFIJA E INFIJA - JAVA
NOTACIÓN POSTFIJA E INFIJA - JAVA
NOTACIÓN POSTFIJA E INFIJA - JAVA
NOTACIÓN POSTFIJA E INFIJA - JAVA
NOTACIÓN POSTFIJA E INFIJA - JAVA
NOTACIÓN POSTFIJA E INFIJA - JAVA
Upcoming SlideShare
Loading in …5
×

NOTACIÓN POSTFIJA E INFIJA - JAVA

9,327 views

Published on

Aqui esta el codigo en java de la notación post fija e infija.

Published in: Technology
7 Comments
1 Like
Statistics
Notes
No Downloads
Views
Total views
9,327
On SlideShare
0
From Embeds
0
Number of Embeds
14
Actions
Shares
0
Downloads
405
Comments
7
Likes
1
Embeds 0
No embeds

No notes for slide

NOTACIÓN POSTFIJA E INFIJA - JAVA

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

×