SoloCodigo

Programación General => Java => Mensaje iniciado por: jriveram en Viernes 8 de Septiembre de 2006, 00:02

Título: Conversion De Expresiones Infijas En Postfijas
Publicado por: jriveram en Viernes 8 de Septiembre de 2006, 00:02
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...
Título: Re: Conversion De Expresiones Infijas En Postfijas
Publicado por: antony_soluciones en Sábado 9 de Septiembre de 2006, 00:33
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:
Título: Re: Conversion De Expresiones Infijas En Postfijas
Publicado por: jriveram en Lunes 11 de Septiembre de 2006, 22:19
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;
      }        
   }

 :(