• Sábado 21 de Septiembre de 2024, 13:52

Autor Tema:  Conversion De Expresiones Infijas En Postfijas  (Leído 5261 veces)

jriveram

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Conversion De Expresiones Infijas En Postfijas
« en: Viernes 8 de Septiembre de 2006, 00:02 »
0
hola a todos, necesito el codigo en java para comvertir expresiones infijas en postfijas, lo necesito para una exposicion en la clase de estructura de datos, si alguien lo tiene, y me lo pueda proporcionar, se lo agradeceria muchisimo...

antony_soluciones

  • Miembro MUY activo
  • ***
  • Mensajes: 222
    • Ver Perfil
Re: Conversion De Expresiones Infijas En Postfijas
« Respuesta #1 en: Sábado 9 de Septiembre de 2006, 00:33 »
0
Hola :kicking:

Generalmente estas labores son para que aprendas bien como trabajar infijo a posfijo, no sería bueno que alguien te proporcionara ese código por que !!!TE ESTARÍAN HACIENDO LA TARÉA¡¡¡¡, recuerda que la mejor forma de aprender es escribiendo el algoritmo, por que esto implica que análices, diseñes, implementes y pruebes... de esta forma tu exp, quedará lista para una buena calificación  :smartass:
[size=109]Antony Hernan Delgado Solano. @antonyDelSol en twitter[/size]

jriveram

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Conversion De Expresiones Infijas En Postfijas
« Respuesta #2 en: Lunes 11 de Septiembre de 2006, 22:19 »
0
oye, por fa, si tienes el codigo, ayudame con eso, tengo uno pero tiene solo 2 errores y no se k hacer:
import java.io.*;
           
   class Principal{
           
             
      public static void main(String arg[])
             
      //throws IOException{
      {
         try
         {
            BufferedReader b=new BufferedReader(new InputStreamReader(System.in));
            String cad;
            char v[];
            int opc=0, cont=0;
            Pila p=new Pila();
            System.out.println("Escriba la cadena Porfavor");
            cad=b.readLine().trim();
            v=cad.toCharArray();
            for(int i=0;i<v.length;i++)
            {
               if (v=='(')
               {
                  opc=1;
               }
               if(Character.isLetterOrDigit(v)){
                  System.out.print(v);
                  cont++;
               }
               else
               
                  if((v=='+')||(v=='-')||(v=='*')||(v=='/'))
                  {
                     p.poner(v);
                  }
               if(cont==2){
                  System.out.print(p.quitar());
                  cont=0;
               }
               if((opc==1)&&(v==')')){
                  System.out.print(p.quitar());
                  opc=0;
               }
            }
            while(!p.vacia()){
               System.out.print(p.quitar());
            }
         
         
         }
                   
            catch (Exception e)
                   
            {
            }
      }
   }

public class Pila{
           
      private NodoDoble tope;
             
      public Pila(){
             
         tope=null;
      }
             
      public boolean vacia(){
             
         return tope==null;
      }
             
      public void poner(char dato){
             
         NodoDoble P=new NodoDoble(dato);
         if(vacia()){
            tope=P;
         }
         else{
            tope.sig=P;
            P.ant=tope;
            tope=P;
         }
      }
             
      public char quitar(){
             
         char dato=0;
         if(!vacia()){
            dato=tope.getDato();
            tope=tope.ant;
            if(tope!=null){
               tope.sig=null;
            }
         }
         return dato;
      }
             
      public char tope(){
             
         char n=this.quitar();
         this.poner(n);
         return n;
      }        
   }

 :(