Exemplo n.º 1
0
 private void ApilarOperador(StringBuilder salida, PilaLista operadores, string token)
 {
     salida.Append(" ");
     if (operadores.lista().Count > 0)
     {
         DesapilaOperando(token, operadores, salida);
     }
     operadores.insertar(token);
 }
Exemplo n.º 2
0
        private void VaciarOperandos(StringBuilder salida, PilaLista operadores)
        {
            salida.Append(" ");

            while (operadores.lista().Count > 0)
            {
                string sop = (string)operadores.quitar();

                if (sop == "(")
                {
                    throw new Exception("Error falta parentesis de cierre )");
                }

                salida.Append(sop + " ");
            }
        }
Exemplo n.º 3
0
        public void DesapilaOperando(string operador, PilaLista lista, StringBuilder salida)
        {
            int    dato  = prioridad(operador);
            string op    = (string)lista.quitar();
            int    dato2 = prioridad(op);

            while (dato <= dato2)
            {
                salida.Append(op + " ");
                if (lista.lista().Count == 0)
                {
                    break;
                }
                op    = (string)lista.quitar();
                dato2 = prioridad(op);
            }

            if (dato > dato2)
            {
                lista.insertar(op);
            }
        }