<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'>
tengo dudas con una clase para convertir expresiones infijas en postfijas<BR>
segui paso a paso un algoritmo y falla en el parentesis derecho<BR>
 <BR>
enum simbolo {operando, pIzq, pDer,<BR>     SumResta, MultDiv, Pow};<BR>class polaca<BR>  {<BR>  private:<BR>    String lexema;<BR>    simbolo precedencia (char c)<BR>    {<BR>      simbolo aux;<BR>      switch (c)<BR>      {<BR>        case '+':<BR>        case '-': aux = SumResta; break;<BR>        case '*':<BR>        case '/': aux =MultDiv; break;<BR>        case '^': aux = Pow; break;<BR>        case '(': aux = pIzq; break;<BR>        case ')': aux = pDer; break;<BR>        default : aux = operando; break;<BR>      }<BR>      return aux;<BR>    }<BR>    stack <char> s;<BR>  public:<BR>    polaca (String s)<BR>    {<BR>      lexema = s;<BR>    }<BR>    String convertir ()<BR>    {<BR>        String salida = "";<BR>        for (int i = 1; i <= lexema.Length(); i++)<BR>        {<BR>          char c = lexema[i];<BR>          simbolo simb = precedencia(c);<BR>          switch (simb)<BR>          {<BR>            case operando: salida = salida + c; break;<BR>            case pIzq:     s.push(c);           break;<BR>            case pDer:     {<BR>                    while(!s.isempty() && s.top() != '(')<BR>                               salida = salida + s.pop();<BR>                             s.pop();<BR>                            }<BR>                           break;<BR>            case SumResta:<BR>            case MultDiv:<BR>            case Pow:      {<BR>                             while (s.isempty() == false && precedencia(s.top()) >= c)<BR>                             {<BR>                               salida = salida + s.pop();<BR>                             }<BR>                             s.push(c);<BR>                           }<BR>                           break;<BR>          }<BR>        }<BR>
          while(s.isempty() == false)<BR>            salida = salida + s.pop();<BR>          return salida;<BR>    }<BR>
  };<BR>
podrian orientarme al menos? gracias...<BR>
la clase stack es un pila de listas enlazadas y el programa esta hecho en c++ builder 6<BR>
 <BR><br /><hr />Express yourself instantly with MSN Messenger! <a href='http://clk.atdmt.com/AVE/go/onm00200471ave/direct/01/' target='_new'>MSN Messenger</a></body>
</html>